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 dependencies 中。
  • Travis 不會在您的本地網路中運行,因此任何嘗試連接到資源的程式碼都應該使用 Nock 進行 stub 處理。
  • 您的 .travis.yml 還有更多可用選項,例如在安裝或測試運行之前運行指令碼。Travis 文件中有關於 GUI 應用程式 設定的提示。