Gre*_*g B 7 mocha.js windows-7 node.js
我正在尝试让Mocha观看我的项目进行测试并不断运行测试但是当我使用-w标志时我得到一个错误.
这里测试执行正常:
C:\Foo>mocha
.
? 1 tests complete (3ms)
Run Code Online (Sandbox Code Playgroud)
在这里 -w
C:\Foo>mocha -w
node.js:201
throw e; // process.nextTick error, or 'error' event on first tick
^
Error: No such module
at EventEmitter.<anonymous> (node.js:392:27)
at Object.<anonymous> (C:\Users\Greg\AppData\Roaming\npm\node_modules\mocha\bin\_mocha:203:11)
at Module._compile (module.js:441:26)
at Object..js (module.js:459:10)
at Module.load (module.js:348:31)
at Function._load (module.js:308:12)
at Array.0 (module.js:479:10)
at EventEmitter._tickCallback (node.js:192:40)
Run Code Online (Sandbox Code Playgroud)
我在全局安装了Mocha(npm install -g mocha)并且应该在本地安装到项目中.
我在64位Windows 7家庭高级版上使用节点v0.6015,Mocha 1.0.1和0.6.1.
通过更改几个mocha源代码文件,我能够在Windows上工作.在npm之后安装mocha(在我的情况下,我只为我的项目安装它,而不是全局安装):
1)首先转到node_modules\mocha\lib\utils.js查找并修复监视功能,如下所示:
exports.watch = function(files, fn) {
var options = { interval: 100 };
files.forEach(function(file) {
debug('file %s', file);
fs.watch(file, options, function(curr, prev) {
fn(file);
});
});
};
Run Code Online (Sandbox Code Playgroud)
我用fs.watch替换了fs.watchFile(详见https://github.com/fgnass/node-dev/issues/26),因为第一个似乎不适用于Windows.
2)现在打开node_modules\mocha\bin\_mocha并应用以下修复:
a)查找并注释掉或删除以下代码:
process.on('SIGINT', function(){
showCursor();
console.log('\n');
process.exit();
});
Run Code Online (Sandbox Code Playgroud)
由于没有相当于POSIX信号的行必须被删除(理想情况下由正确的实现替换,有关详细信息,请参阅node.js中与Windows相当的process.on('SIGINT')是什么?)
b)找到以下代码utils.watch(watchFiles,function(){...并替换为
var lastRun = new Date();
utils.watch(watchFiles, function(){
if (new Date() - lastRun > 300)
{
purge();
stop()
mocha.suite = mocha.suite.clone();
ui = interfaces[program.ui](mocha.suite);
loadAndRun();
lastRun = new Date();
}
});
Run Code Online (Sandbox Code Playgroud)
它限制了fs.watch的过度卡拉.
c)最后一项更改是删除或评论此行:
process.stdout.write('\r' + str);
Run Code Online (Sandbox Code Playgroud)
在功能播放(arr,interval).它只是去除噪音.
尝试将 mocha 本地安装到您正在测试的项目中,看起来 mocha 没有找到需要使用的模块。
另外我认为这对你也应该有帮助: Mocha 需要 make。找不到适用于 Windows 的 make.exe
| 归档时间: |
|
| 查看次数: |
1410 次 |
| 最近记录: |