Mocha ingores 测试,如何启动所有
Mocha ingores tests, how to launch the all
我正在创建一个 node.js 插件以将 post 数据传输到 elasticsearch。我的测试文件中有四个单元测试。然而,mocha 只启动了其中的两个而忽略了其他的。我应该怎么做才能启动它们,如何解释这种行为?
这是我的测试:
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);
});
});
});
});
你不应该把你的 it 语句放在代码超级测试的回调中。 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 不会被调用两次
我正在创建一个 node.js 插件以将 post 数据传输到 elasticsearch。我的测试文件中有四个单元测试。然而,mocha 只启动了其中的两个而忽略了其他的。我应该怎么做才能启动它们,如何解释这种行为? 这是我的测试:
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);
});
});
});
});
你不应该把你的 it 语句放在代码超级测试的回调中。 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 不会被调用两次