使用PhantomJS和Travis CI运行实习测试

时间:2016-02-19 22:06:49

标签: node.js phantomjs automated-tests travis-ci intern

上下文

我正在使用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=444intern-runner config=tests/intern

1 个答案:

答案 0 :(得分:2)

由于Travis CI命令只是shell命令,因此您应该能够启动phantomjs然后继续forking it

- phantomjs --webdriver=4444 &

(注意最后的&符号。)

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

还可以使用许多其他脚本和/或Grunt任务来运行PhantomJS,但这应该是解决问题所需的最小变化。