我正在创建一个node.js插件以将数据发布到elasticsearch。我的测试文件中有四个单元测试。但是,摩卡咖啡仅启动其中两个,而忽略其他两个。我应该怎么做才能将它们全部启动,如何解释这种行为? 这是我的测试:
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);
});
});
});
});
答案 0 :(得分:0)
您不应将其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()
});
});
});
EDIT 添加了关于错误的return语句,以确保不会两次调用done