当busterJS说Node中的TestHelpers将被要求时是什么意思?
题
从文档中 (强调我的)
要在浏览器中的脚本标记中加载的库文件。 该设置通常不适用于节点运行。如果是,文件将是
require'd
. 值是文件名和/或全局模式的数组。文件按提供的顺序加载。它可能包含重复项,例如[“测试/lib/core.js”,“测试/lib/*/.js“],文件只会加载一次。测试人员是在库和源后加载的,但在测试之前。
这到底是什么意思?当他们得到 require'd
, ,它们被包含为什么?在什么变量名下?我有一些全局方法(testSetUp
和 testTearDown
)我喜欢在测试之间重用。据此,我只能在浏览器中测试时在测试之间使用这些方法,而不能在 Node 中测试时使用这些方法。
这是我的配置文件:
var config = module.exports;
config['Browser Tests'] = {
rootPath: '../',
environment: 'browser',
sources: [
'src/*.js'
],
deps: [
'submodules/d3/d3.v2.min.js'
],
testHelpers: [
'test/helpers/*.js'
],
tests: [
'test/test_*.js'
]
};
config["Node tests"] = {
rootPath: '../',
environment: "node",
tests: [
'test/test_*.js'
]
};
解决方案
文档告诉您的是,这些文件是必需的,但它们的导出将会丢失。因此,除非你的助手修改全局对象,否则这在节点上没有用。
但是,您可以自由地将共享助手放在单独的文件中并要求您自己。
不隶属于 StackOverflow