gma*_*man 6 javascript mocha.js
我知道before,beforeEach,after和afterEach,但我怎么运行所有测试前,一些代码.
换句话说,我这样的文件
test
test1.js
test2.js
test3.js
Run Code Online (Sandbox Code Playgroud)
我用它来运行测试
mocha --recursive
Run Code Online (Sandbox Code Playgroud)
我不想before在每个测试文件中放入一个.在执行任何测试之前,我需要一个beforeAllTests或一个--init=setup.js可以执行一些JavaScript的东西.在这种特殊情况下,我必须在测试运行之前配置我的系统的日志记录模块
有没有办法调用一些在所有测试之前执行的init函数?
小智 5
如果只需要初始化代码,那么mocha -r ./init对您来说可能就足够了。甚至将其放入test/mocha.opts
--require ./test/init
--ui tdd
Run Code Online (Sandbox Code Playgroud)
但如果你需要拆卸操作,就会遇到一个困境,例如:
var app = require('../app.js');
app.listen(process.env.WEB_PORT);
after(function(done) {
var db = mongoskin.db(process.env.DB_URL, {safe:true});
db.dropDatabase(function(err) {
expect(err).to.not.be.ok();
db.close(done);
});
});
Run Code Online (Sandbox Code Playgroud)
你会得到错误:
ReferenceError: after is not defined
我猜摩卡在处理“--require”时尚未初始化。