我目前正在开发一个项目,我想在不同的环境中测试 - 包括node.js和不同的karma / selenium浏览器 - 以避免兼容性问题。 (我想我会在浏览器中使用browserify,但我还不熟悉它。)
我有一个嵌套的测试目录,如下所示:
repo/
- project.js
- project.my.module.js
- spec/
-- helpers/
--- a.jasmine.helper.js
-- support/
--- jasmine.json
-- project.my.module/
--- ModuleClass.spec.js
-- project.MyClass.spec.js
-- project.OtherClass.spec.js
目前我只使用jasmine-npm(对于node.js来说是jasmine 2.2)来测试项目。通过测试工作目录是repo/
,我使用node.exe
运行jasmine.js
。 jasmine.js
加载jasmine.json
:
{
"spec_dir": "spec",
"spec_files": [
"**/*[sS]pec.js"
],
"helpers": [
"helpers/**/*.js"
]
}
现在我有2个问题。
require("../../project.my.module.js")
文件中的ModuleClass.spec.js
? (我宁愿使用一个简短的常量名称,就像我可以通过符号链接一样。)我检查了一些关于node.js的教程,看起来我有两个选择。我可以使用package.json
(我不知道的一些魔法配置选项),或者我可以将我要加载的文件移动到node_modules/
(我确信我不会做)。我愿意接受建议,因为我无法看到解决这个问题的方法......
修改
karma-browserify似乎解决了测试问题,可能我必须为浏览器添加茉莉花,但这没关系。我不必通过测试更改commonjs模块定义。因此,可以在node.js和具有长路径的浏览器中进行测试。
EDIT2:
我最终将我的仓库的父目录添加到NODE_PATH。这样我就可以要求我正在开发的每个项目。
答案 0 :(得分:2)
如何在node_modules
下对项目目录进行符号链接(例如node_modules/project
)并要求require("project/project.my.module.js")
?