【发布时间】:2013-12-20 14:25:00
【问题描述】:
在测试环境中使用
-
chokidar(使用 watcherchokidar变量触发测试文件的更改), -
node.js(在浏览器中输出测试结果), -
mocha+chai(测试套件), - 使用自定义报告器(如Using Mocha programmatically 中所述)
随着测试文件的更改,watcher 会捕获事件,并应重新运行测试。
问题:我的测试只执行了一次!
当第二次尝试运行我的测试时(当文件第二次在磁盘上更改时),mocha 不会像第一次那样重新处理测试。我怀疑我应该重置一些内部运行器属性,但是查看 mocha github 存储库,我似乎没有找到正确的调用方法。请注意,我的记者“班级”在第二个观察者唤醒时仅收到来自 mocharunner.on("end", ...) 的 1 个事件。
watcher.on('change', function(path, stats) {
// ...
console.log('-----File ' + path + ' has been changed ' + "[" + stats.size + "b]" );
Mocha = require('mocha');
Mocha.prototype.printFiles = function(){
console.log("Existing files = ");
console.log( this.files );
return this;
};
var mocha = new Mocha({
bail: false
});
mocha.reporter("/dirs/MyReporter.js");
mocha.addFile("/dirs/my-test.js");
mocha.run(function(failures){
});
// ...
});
我如何要求(方法调用)Mocha 重置它对我的先例运行的假设以重新运行我的测试作为第一次?
【问题讨论】: