【问题标题】:Running Intern tests using PhantomJS and Travis CI使用 PhantomJS 和 Travis CI 运行实习生测试
【发布时间】:2016-02-19 22:06:48
【问题描述】:

上下文:

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

问题:

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

【问题讨论】:

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


    【解决方案1】:

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

    - phantomjs --webdriver=4444 &
    

    (注意末尾的和号。)

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

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

    【讨论】:

    • 如果您决定切换到 gulp 则添加一个很好的答案,然后考虑超级测试,它会为测试运行启动一个服务器,然后作为测试套件的一部分将其全部关闭
    • @CSnover 感谢您一直回答我与实习生相关的问题。这确实解决了它挂起的问题,但现在我是running into this issue。猜猜我必须查找在 Travis CI 而不是 Phantom JS 上使用 Selenium 的资源:/
    猜你喜欢
    • 1970-01-01
    • 2020-07-27
    • 1970-01-01
    • 1970-01-01
    • 2013-09-04
    • 2016-05-09
    • 2015-12-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多