我目前正在开发一个项目,我想在不同的环境中进行测试 - 包括 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
with jasmine.js
. The jasmine.js
加载jasmine.json
:
{
"spec_dir": "spec",
"spec_files": [
"**/*[sS]pec.js"
],
"helpers": [
"helpers/**/*.js"
]
}
现在我这里有两个问题。
- 例如,如何通过 require 避免长相对路径
require("../../project.my.module.js")
in the ModuleClass.spec.js
文件? (我宁愿使用一个简短的常量名称,就像我可以通过符号链接所做的那样。)
- 如何以与在不同浏览器中运行相同测试文件兼容的方式执行此操作? (我想通过测试保留 commonjs 模块定义。)
我检查了一些关于node.js的教程,似乎我有两个选择。我可以使用package.json
(有一些我不知道的神奇配置选项),或者我可以将我想要加载的文件移动到node_modules/
(我确信我不会这样做)。我愿意接受建议,因为我不知道如何解决这个问题......
edit:
The 业力浏览器 https://github.com/nikku/karma-browserify似乎解决了测试问题,可能我必须为浏览器添加茉莉花,但这没关系。我不必通过测试更改 commonjs 模块定义。因此可以在 Node.js 和具有长路径的浏览器中进行测试。
edit2:
我最终将我的存储库的父目录添加到 NODE_PATH 中。这样我就可以要求我当前正在开发的每个项目。
将您的项目目录符号链接到下面怎么样node_modules
(例如,作为node_modules/project
)并要求类似require("project/project.my.module.js")
?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)