Тесты Мокко на ингорах, как запустить все - PullRequest
0 голосов
/ 29 октября 2018

Я создаю плагин node.js для публикации данных вasticsearch. У меня есть четыре модульных теста в моем тестовом файле. Однако мокко запускает только двоих из них и игнорирует остальных. Что я должен сделать, чтобы запустить их все, как такое поведение можно объяснить? Вот мои тесты:

describe('Module', () => {

let DataLogger = require('../dist/index.js').DataLogger;

it('should exist', ()=>{
    expect(new DataLogger()).to.exist;
});

describe('checkCon index name is missed', () => {
    DataLogger.checkCon(null, indexDocParams, 'add', (error, success) => {
        it('success should return null', () => {
            expect(success).to.equal(null);
        });
    });
});

describe('checkCon index does not exist', () =>{
    DataLogger.checkCon('a', indexDocParams, 'add', (error, success)=>{
        it('success should return null', () => {
            expect(success).to.equal(null);
        });
    });
});

describe('checkCon doc added', () =>{
    DataLogger.checkCon('structnew', indexDocBody, 'add', (error, success)=>{
        it('error should return null', () => {
            expect(error).to.equal(null);
        });
    });
});

});

1 Ответ

0 голосов
/ 29 октября 2018

Вы не должны помещать свои операторы it внутри обратных вызовов кода uber test. Mocha строит свой список тестов во время загрузки, поэтому такие операторы могут не восприниматься.

Попробуйте переписать как:

describe('checkCon doc added', () =>{
  it('error should return null', (done) => {
    DataLogger.checkCon('structnew', indexDocBody, 'add', (error, success)=>{
        if(error) { 
          return done(error);
        }

        expect(error).to.equal(null);
        done()
    });
});

});

РЕДАКТИРОВАТЬ добавлен оператор возврата при ошибке, чтобы гарантировать, что done не вызывается дважды

...