在没有全局安装PhantomJS的情况下运行“ember test”

时间:2016-05-06 22:09:38

标签: maven ember.js ember-cli testem

我有一个Ember CLI项目,我正在使用Maven构建,我试图找出如何让maven能够运行测试,而无需事先假设全局安装了PhantomJS。我正在使用frontend-maven-plugin来安装特定版本的node和npm,以调用npm install,bower install和ember build;这一切都已经奏效了。我现在要做的还是调用ember测试,如果测试失败,则无法使用maven构建。目前,只要“phantomjs”在运行maven构建的机器的路径中,这就可以工作;然而,许多开发人员使用这个不是开发人员的构建版本,并且不会在他们的路径中使用phantomjs。我也不想确保在我的CI服务器上全局安装phantomj。

是否有某种方法可以将PhantomJS指定为package.json中的依赖项并使用testem(ember的默认测试运行器)在node_modules中获取安装?我能以某种方式向PhantomJS提供路径,这在文档中并不明显吗?或者,如果我想运行测试,我是否只需要使用隐藏的手动依赖项?

1 个答案:

答案 0 :(得分:3)

是的,你可以做到这一点。

首先,安装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来运行测试。