我有一个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提供路径,这在文档中并不明显吗?或者,如果我想运行测试,我是否只需要使用隐藏的手动依赖项?
答案 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来运行测试。