1

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

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

4

1 回答 1

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 来运行测试。

于 2016-05-07T13:35:32.567 回答