我的源代码中有一个__DEVTOOLS__
个全局变量。通常我使用webpack DefinePlugin将其定义为布尔值。
new webpack.DefinePlugin({
__DEVTOOLS__: true
})
但在我的mocha测试中,我只想使用babel/register
而不想在我的测试中使用wepack。是否有任何方法可以像webpack DefinePlugin一样注入全局变量,或者在编译时至少忽略全局变量?
答案 0 :(得分:6)
使用Mocha,您可以为global
对象分配属性,我认为这将达到您想要的效果:
global.__DEVTOOLS__ = true;
你可以把它放在任何你想要的地方,例如一个before
块,但是如果您已经在测试之前加载了helper.js
或setup.js
文件,那么这将是一个放置它的好地方。
答案 1 :(得分:5)
我最近遇到了这个问题,并将global.__DEVTOOLS__ = true;
添加到before
块,或者在测试中的任何位置,都不适用于我。我最终解决了这个问题,创建了一个单独的脚本,通过--require
标志传递给mocha cli。
// config/mocha-setup.js
require('babel-register');
global.__DEVTOOLS__ = true;
然后配置测试命令:
// package.json
scripts: {
test: mocha --require ./config/mocha-setup
}