Grunt使用PhantomJS以一种非常有趣的方式运行无头的QUnit测试(如果我错了请纠正我)。由于我刚开始尝试使用这些工具,我不完全理解它,也不知道如何配置或如何扩展它。
我设法让我的机器全部工作,但我想不使用 $ PATH系统变量。相反,我想通过一个我可以轻松更改并移植到其他环境的设置提供PhantomJS可执行文件的路径。
我怎样才能做到这一点?
我想有很多方法,我认为Qunit Task from Grunt可能有一个简单的答案。理想情况下,只需在 grun.js 文件中定义路径,就像这样:
qunit: {
phantomjsPath: 'path/to/phantomjs',
files: ['test/**/*.html']
},
我的环境是MacOSX,但我接受任何类型环境的解决方案,例如Windows - 我的构建服务器。
提前致谢。
更新我正在使用的Grunt版本是 v0.3.17 。下一个大版本 v0.4.x 有许多更改,有些不向后兼容。
答案 0 :(得分:2)
嗯,我认为你最终迁移到了Grunt 0.4。并且你可以使用grunt-contrib-qunit插件在PhantomJS下运行qunit测试。不幸的是,你会遇到同样的问题 - 不可能提供phantomjs可执行文件的路径。那是因为grunt-contrib-qunit / grunt-contrib-phantomjs使用phantomjs
npm模块在安装时下载PhantomJS并在其js代码中硬编码可执行文件的路径。如果您遇到此类问题,请查看我的blog post。
答案 1 :(得分:1)
不幸的是,grunt 0.3.x没有内置选项来指定phantomjs的路径 - 它只是直接在命令行上执行phantomjs
。看看这个辅助函数:
https://github.com/gruntjs/grunt/blob/master/tasks/qunit.js#L231
然而,在尚未发布的grunt-0.4中,情况似乎发生了变化:
https://github.com/gruntjs/grunt-lib-phantomjs/blob/master/lib/phantomjs.js#L22
如您所见,下一版本的grunt使用npm模块phantomjs,它将“包含path
的路径字符串导出到phantomjs二进制/可执行文件。”。由于npm模块phantomjs
是由grunt本地安装的,因此这似乎可以避免您担心设置PATH
变量或安装phantomjs
的冲突版本。
无论如何,如果你愿意生活在最前沿,我会考虑看grunt-0.4。
否则,您始终可以分叉qunit
任务并修改grunt-qunit
任务以查看自定义配置变量。