dimanche 4 octobre 2015

run all test bad but each test works if you run only

i have a problem with test when run all him has error but when run only is successfull

example test "mocha test/testSearch"

  V deberia traer productos del determinado tag (431ms)
  V deberia traer items por determinada con la cordenada (49ms)
  V deberia traer items por determinada categoria

3 passing (3s)

mocha server test -a --reporter=nyan

    10  -_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_,------,
    31  -_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_|   /\_/\
    1   -_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-^|__( x .x)
        -_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-  ""  ""

  10 passing (1m)
  1 pending
  31 failing

here my code a example test

var mocha       = require('mocha');
var chai        = require('chai');
var supertest   = require('supertest-as-promised');

var server      = require('../server.js');
var mongoose    = require('mongoose');
var request     = supertest(server);

// libraries data 

chai.should();

var expect = chai.expect;

describe('test buscardor de productos', function () {

  var route = '/api/v01/search/';

  var idEstablisments;
  var idCategories = [];
  var idProducts   = [];
  var idTags       = [];


  // save my data for test


  // conections 
  before(function(done) {
    if (mongoose.connection.db){ return done(); }
    mongoose.connect('mongodb://localhost/pidefarma-test', done);
  });

  after(function(done) {
    mongoose.connection.db.dropDatabase(function () {
      mongoose.connection.close(done);
    });
  });

  // EXAMPLE NORMAL TEST
  it('deberia traer productos del determinado tag', function (done) {
    var query = { tag : 'pañales'};

    request
    .get(route)
    .set('accept', 'application/json')
    .query(query)
    .expect(200)
    .expect('content-Type', /json/)
    .end(function(err, data){
      if(err){ throw(err); }

      var body = data.body;
      // console.log(body);
      body.should.to.be.a('array');

      var obj = body[0];
      expect(obj.products).to.have.property('name');
      expect(obj.products).to.have.property('description');
      done();
    });
  });

});

my other tests are equal with the same connection Here is another example

var mocha     = require('mocha');
var chai      = require('chai');
var supertest = require('supertest-as-promised');

var mongoose  = require('mongoose');
var server    = require('../server.js');

var request   = supertest(server);

chai.should();

var expect = chai.expect;

describe('test login', function () {

    /*
        varibles 
    */

  before(function(done) {
    if (mongoose.connection.db){ return done(); }
    mongoose.connect('mongodb://localhost/pidefarma-test', done);
  });

  after(function(done) {
    mongoose.connection.db.dropDatabase(function () {
      mongoose.connection.close(function () {
        done();
      });
    });
  });

  before(function(done){
    request
    .post(routeUsers)
    .set('accept','application/json')
    .send(user)
    .expect(201)
    .expect('content-type', /json/)
    .end(function(err, data){
      if(err){ throw(err); }
      userId = data.body._id;
      done();
    });
  });

  it('deberia traer el usuario y el hash jwt', function (done) {

    request
    .post(route)
    .set('accept', 'application/json')
    .send(user)
    .expect(200)
    .expect('content-Type', /json/)
    .end(function(err, data){
      if(err){ throw(err); }

      var body = data.body;

      body.should.to.be.a('object');

      expect(body).to.have.property('token');
      done();

    });

  });

});

i not have very experienced with mocha

Aucun commentaire:

Enregistrer un commentaire