iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 18
0
DevOps

.NET Core 專案持續整合與部署系列 第 18

GitLab CI:加入測試和覆蓋率

  • 分享至 

  • xImage
  •  

在國慶連假前,此系列文每天的發文時都會以最簡陳述為主,以求在繁忙的日常中,至少能先維持挑戰鐵人賽的進度,並且逐漸拓展思路與系列構成。預期會在國慶聯假好好的去修文。

還記得我們在前天建立的最簡單的一個 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 的執行,基本上是不用做任何修改。


上一篇
導讀:持續整合、交付、部署、釋出
下一篇
.NET Core 版本生命週期
系列文
.NET Core 專案持續整合與部署31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言