【发布时间】:2013-03-07 23:35:56
【问题描述】:
我已经全局安装了 mocha 并用它来运行一些测试:
$> mocha test.js
在 test.js 文件的根目录中,我想对 mocha 进行猴子补丁:
require('mocha').Runner.prototype.runTests = function() {...}
但是 require('mocha') 失败,因为 mocha 不在 node_modules 中而是全局安装。
如果我在我的项目中本地安装 mocha,则 require('mocha') 会找到它,但它与用于执行的环境模块不同,因此补丁不好。
如果我从本地存储库而不是全局存储库运行 mocha,那么一切正常:
$> ./node_modules/mocha/bin/mocha test.js
但是我想从全局存储库运行 mocha。有什么想法吗?
编辑:我放弃了访问全局 mocha 模块的尝试,它似乎在本地运行 mocha 并且在本地需要它对于 my use case 来说已经足够了。
【问题讨论】:
-
require('mocha')如果全局加载 mocha 则有效。 mocha 是否仅作为依赖项安装? -
@BenjaminGruenbaum 我对这些帖子很熟悉。我不是要告诉 mocha 不要运行一些测试。但我有自己的逻辑,所以这需要是侵入性的。但是我尽量避免直接更改 mocha 代码,以便获得它的未来版本。
-
@PascalBelloncle 使用 require('mocha') 创建最简单的 p.js 文件。那么如果本地没有安装mocha,调用mocha p会报错mocha is not found.mocha is not in
-
是的,如果我不在本地已经安装了
mocha的地方尝试这个,它会有所帮助。抱歉打扰了。
标签: node.js npm mocha.js monkeypatching