Travis CI

Travis CI 是一款流行的持续集成服务,它与您的 Github 仓库集成,以便在代码推送时自动运行您的测试。集成是通过在项目根目录添加一个简单的 YAML 文件来完成的;Travis 和 Github 会处理其余的事情。每次测试时,Travis 结果都会出现在您的 Github 拉取请求中,并且您的历史记录将在其控制面板中可用。本文假设您已经拥有 Travis 帐户。

配置 Travis #

在您的项目根目录中创建一个名为 .travis.yml 的文件,其中包含以下 YAML 内容

language: node_js
node_js:
  - "4"

设置测试命令 #

如果您在项目根目录中还没有 package.json,请立即创建一个。Travis 运行 npm test 来触发您的测试,所以在这里您告诉 Travis 如何运行您的测试。

// ...snip...
"devDependencies": {
  "karma": "~0.12"
},
// ...snip...
"scripts": {
   "test": "karma start --single-run --browsers PhantomJS"
}
// ...snip...

Travis 会在每个套件之前运行 npm install,所以这是您指定应用程序需要的任何 Travis 不了解的模块(如 Karma)的机会。

使用 Firefox 配置 Travis #

Travis 支持使用虚拟屏幕运行真实的浏览器(Firefox)。只需更新您的 .travis.yml 以设置虚拟屏幕,如下所示(如果您使用的是 Xenial)

language: node_js
node_js:
  - "4"
dist: xenial
services:
  - xvfb

或者这个,对于 Trusty 及以下版本

language: node_js
node_js:
  - "4"
before_script:
  - export DISPLAY=:99.0
  - sh -e /etc/init.d/xvfb start

现在,您可以在 Firefox 上运行您的测试,只需将 npm test 命令更改为

karma start --browsers Firefox --single-run

注意 #

  • Travis 的 Node 环境可用资源非常少。如果 Travis 中的启动过程未能检查缺少的模块信息,请确保将其添加到您的 package.json 依赖项中。
  • Travis 不会在您的本地网络上运行,因此尝试连接到资源的任何代码都应使用 Nock 进行存根。
  • 您的 .travis.yml 中还有更多可用选项,例如在安装或测试运行之前运行脚本。Travis 文档中有一些关于 GUI 应用程序 配置的提示。