同時也要練習寫 golang 的 unit test
所以想起了之前寫過兩篇文章
這篇文章就記錄一下怎麼用 AppVeyor 建置 golang 的 repository 吧
其實比想像中的簡單
一開始也是從 NEW PROJECT 的按鈕
把你用 golang 寫的 repository 加進來
AppVeyor 主畫面 [截圖自www.appveyor.com] |
然後 AppVeyor 的官網文件有教你怎麼寫 yaml 來 build golang repository
照抄就可以了
# appveyor.yml build: off clone_folder: c:\gopath\src\github.com\$username\$project environment: GOPATH: c:\gopath stack: go 1.10 before_test: - go vet ./... test_script: - go test ./...
這次也是第一次用 AppVeyor 的 yaml 檔
其實比想像中容易很多
而且網頁上的 Settings 裡面
也有 Export YAML 的功能
你可以利用網頁 UI 設定好一些內容後
透過 Export YAML 輸出 appveyor.yml
再放入你自己的 repository 內
Export YAML 畫面 [截圖自www.appveyor.com] |
接下來就是測試看看 build 的結果啦
成功的 build 好與執行 unit tests [截圖自www.appveyor.com] |
不過 golang 的 unit tests 輸出並非是 AppVeyor 支援的格式
所以我們得透過一個工具 go-junit-report 來做轉換
我查了一下
最後是在我的 appveyor.yml 檔加了兩個部分
一個是 install 的地方先抓下 go-junit-report
接著在執行 unit tests 的地方透過參數把輸出開成 verbose
然後利用 pipe 傳給 go-junit-report
當然最後要用到之前文章學到的
把 report 透過 API 傳到 AppVeyor 上
build: off clone_folder: c:\gopath\src\github.com\LaurenceCheng\testutils environment: GOPATH: c:\gopath stack: go 1.12 install: - go get -u -v github.com/jstemmer/go-junit-report before_test: - go vet ./... test_script: - go test -v ./... 2>&1 | c:\gopath\bin\go-junit-report > tests_report.xml on_finish: - ps: (new-object net.webclient).UploadFile("https://ci.appveyor.com/api/testresults/junit/$($env:APPVEYOR_JOB_ID)", (Resolve-Path .\tests_report.xml))
之後就能成功在 Tests 頁面看到失敗與成功的案例了
unit test 成功與失敗的 report [截圖自www.appveyor.com] |