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

Running Intern tests using PhantomJS and Travis CI

上下文:

我正在 运行使用 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 命令启动了一个网络服务器,它永远不会 运行s npm test。它只是在网络服务器上停止。

问题:

如何才能在启动 PhantomJS 后 运行 npm test?有什么方法可以将该进程移到后台,或者启动另一个进程来 运行 我的测试?或者有什么方法可以同时调用 phantomjs --webddriver=444intern-runner config=tests/intern 吗?

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

- phantomjs --webdriver=4444 &

(注意末尾的符号。)

您可能还需要添加一个 sleep 来为进程提供启动时间,因为 PhantomJS 似乎没有办法在准备就绪时自行守护进程或访问 pid 文件。

还有许多其他脚本 and/or G运行t 任务可用于 运行 PhantomJS,但这应该是解决问题所需的最小更改。