我正在使用Intern框架运行一些单元测试。由于我正在测试的代码是我在NPM上发布的一个包,我想将它与Travis CI集成。
在我当地,所有的测试都运行良好。然而,使用Travis CI,由于启动了PhantomJS网络服务器,测试停止了。
这是我的Travis CI文件:
language: node_js
node_js:
- "4"
env:
- CXX=g++-4.8
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- g++-4.8
before_script:
- bower install
- npm install grunt-cli -g
- grunt installation
- phantomjs --webdriver=4444
由于phantomjs
命令启动了Web服务器,因此它永远不会运行npm test
。它只是暂停在网络服务器上。
如何在启动PhantomJS后运行npm test
?有什么方法可以将该流程移至后台,或启动另一个流程来运行我的测试?或者是否有某种方式同时调用phantomjs --webddriver=444
和intern-runner config=tests/intern
?
答案 0 :(得分:2)
由于Travis CI命令只是shell命令,因此您应该能够启动phantomjs然后继续forking it:
- phantomjs --webdriver=4444 &
(注意最后的&符号。)
您可能还需要添加一个sleep
来启动进程时间,因为看起来PhantomJS没有办法自我守护或在准备就绪时触摸pid文件。
还可以使用许多其他脚本和/或Grunt任务来运行PhantomJS,但这应该是解决问题所需的最小变化。