使用PhantomJS和Travis CI运行实习生testing

语境:

我正在使用Intern框架运行一些unit testing。 由于我testing的代码是我在NPM上发布的一个包,我想将它与Travis CI集成。

在我的本地,所有的testing运行良好。 但是,使用Travis CI,testing因为启动PhantomJSnetworking服务器而停滞不前。

这是我的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 。 它只是暂停在networking服务器上。

题:

启动PhantomJS后,如何进行npm test ? 有什么方法可以将该过程移到后台,还是启动另一个过程来运行我的testing? 还是有一种方式调用phantomjs --webddriver=444intern-runner config=tests/intern在同一时间?

由于Travis CI命令只是简单的shell命令,你应该能够启动phantomjs,然后继续分叉 :

 - phantomjs --webdriver=4444 & 

(注意最后的&符号)

您可能还需要添加sleep来启动进程时间,因为PhantomJS似乎没有办法自己守护进程或在准备就绪时触摸pid文件。

还有很多其他脚本和/或Grunt任务可以用来运行PhantomJS,但这应该是解决您的问题所需的最小更改。