在國慶連假前,此系列文每天的發文時都會以最簡陳述為主,以求在繁忙的日常中,至少能先維持挑戰鐵人賽的進度,並且逐漸拓展思路與系列構成。預期會在國慶聯假好好的去修文。
還記得我們在前天建立的最簡單的一個 GitLab CI 設定檔嗎?今天就讓我們把前面學到的部分功能整合進去吧!
stages:
- commit
.dotnet-core-runner: &dotnet-core-runner
image: mcr.microsoft.com/dotnet/core/sdk:3.0
tags:
- docker
.dotnet-core: &dotnet-core
<<: *dotnet-core-runner
before_script:
- dotnet --version
only:
- master
- merge_requests
unit-test:
<<: *dotnet-core
stage: commit
script:
- dotnet test
首先修改 unit-test
job 的腳本,這樣就會在測試時順便產生程式碼覆蓋率:
unit-test:
<<: *dotnet-core
stage: commit
script:
- dotnet test -p:CollectCoverage=true
我們還可以到 Setting > CI/CD > General pipelines 的 Test coverage parsing 去填寫:
\| Total +\| (\d+(?:\.\d+)?)% +\| \d+(?:\.\d+)?% +\| \d+(?:\.\d+)?% +\|
這樣 GitLab CI 就會用這個正規表達式去抓取算出來的覆蓋率並存在該 Job 的執行結果中了。
至於 Code Linter,由於 dotnet test
中隱含著 dotnet build
的執行,基本上是不用做任何修改。