在未全局安装幻像 JS 的情况下运行"ember test"



我有一个Ember CLI项目,我正在使用Maven构建该项目,我正试图弄清楚如何让Maven能够运行测试,而无需事先假设全局安装PhantomJS。我正在使用前端maven插件动态安装特定版本的node和npm,调用npm安装、bower安装和ember构建;这一切已经奏效了。我现在要做的也是调用ember测试,如果测试失败,就让maven构建失败。目前,只要"phantomjs"在运行maven构建的机器的路径上,这就可以工作;然而,许多开发人员使用这个构建,他们不是ember开发人员,也不会有phantomjs。我也不想确保在我的CI服务器上全局安装phantomjs。

有没有办法将PhantomJS指定为package.json中的依赖项,并让testem(ember的默认测试运行程序)在node_modules中进行安装?我可以提供PhantomJS的路径,以某种在文档中不明显的方式进行测试吗?或者,如果我想运行测试,我只需要接受隐藏的手动依赖关系吗?

是的,你可以做到。

首先,将phantomjs-prebuilt作为开发依赖项安装:

npm install --save-dev phantomjs-prebuilt

然后更改package.json脚本,在运行测试之前将项目本地node_modules添加到路径中:

    "scripts": {
      "build": "ember build",
      "start": "ember server",
      "test": "PATH=$PATH:./node_modules/.bin ember test"
    },

然后像正常一样运行测试

npm install && bower install && npm test

这将启动您的项目本地版本的phantomjs来运行测试。

相关内容

  • 没有找到相关文章

最新更新