原文連接:在 Go 語言項目中使用 Travis CIgit
Travis CI 是一種免費的持續集成服務,而 持續集成(CI, Continuous integration) 是一種軟件工程流程,歸納來說就是多提交小的 Commit 來更快的發現軟件的 Bug,從而提升軟件質量。github
本文會詳細介紹如何在 Go 語言項目中使用 Travis CI。golang
hello.go:svg
package hello
func Hello() string { return "Hello, World!" }
複製代碼
hello_test.go:post
package hello
import (
"testing"
)
func TestHello(t *testing.T) {
if got, want := Hello(), "Hello, World!"; got != want {
t.Errorf("got %v, want %v", got, want)
}
}
複製代碼
go.mod:測試
module github.com/linehk/hello
go 1.14
複製代碼
該文件經過命令:go mod init github.com/linehk/hello
生成。ui
創建一個 GitHub 倉庫,並將上面三個文件組成的 hello 項目推送到倉庫。spa
在 Travis CI 倉庫頁面左上角點擊 Sync account 來將 GitHub 新建立的倉庫同步到 Travis CI。code
並在左邊的 Legacy Services Integration 下找到 hello 項目,將其勾選上。以下圖所示:orm
受益於在 Go 1.13 版本後,Go Modules 是默認開啓的狀況下,如下就是最簡單的 .travis.yml 文件,.yml 後綴表示使用的是 YAML 格式:
# 使用 Go 語言(# 號開頭的爲註釋)
language: go
script:
- go test -v ./...
複製代碼
將上一步編寫的 .travis.yml 文件加入倉庫並推送至 GitHub。Travis CI 檢測到該文件就會根據裏面的內容開始測試。以後每次推送都會觸發測試。
在 dashboard 中能夠找到 hello 項目,點擊進入就能夠看到詳細的測試信息。以下圖所示:
點擊綠色的 build passing 就能獲得徽章的地址,如:https://travis-ci.org/linehk/hello.svg?branch=master
。
能夠將它貼在你的 README 文件裏,若是項目在某次推送中測試失敗,徽章就會變成紅色。