設定 unit test的code coverage report
在預設的 Azure DevOps Pipeline範本當中,針對 .net core的專案,你可以透過 dotnet task來運行單元測試,使用的指令是 dotnet test。底下是Yaml code, 這是一個很標準的做法:
steps:
- task: DotNetCoreCLI@2
displayName: Test
inputs:
command: test
projects: '$(Parameters.TestProjects)'
arguments: '--configuration $(BuildConfiguration)'
但使用預設的dotnet rest,並不會產生code coverage報表,雖然我們並沒有想追求很高的unit test code coverage,但出一下報表對我們來說還是很具有參考價值的。
如果你也想要檢視code coverage報表,可以做底下調整。
step 1: 修改 dotnet test task
steps:
- task: DotNetCoreCLI@2
displayName: Test
inputs:
command: test
projects: '$(Parameters.TestProjects)'
arguments: '--configuration $(BuildConfiguration) --collect:"XPlat Code Coverage" -- DataCollectionRunSettings.DataCollectors.DataCollector.Configuration.Format=cobertura'
你會發現在參數的地方,我們加上了 --collect 等敍述,主要是告知 dotnet task運行test的時候,要蒐集相關資訊。
step 2: 增加Publish code coverage results task
steps:
- task: PublishCodeCoverageResults@1
displayName: 'Publish code coverage from $(Agent.TempDirectory)/**/coverage.cobertura.xml'
inputs:
codeCoverageTool: Cobertura
summaryFileLocation: '$(Agent.TempDirectory)/**/coverage.cobertura.xml'
Publish code coverage results task可以幫助我們把報表跟pipeline的GUI做一個整合,呈現出底下這樣的視覺效果:
如此一來,就有可以參考的 code coverage report囉。
底下是操作影片:
===========
相關課程:
敏捷開發專案管理與Azure DevOps實戰
https://www.studyhost.tw/NewCourses/ALM
留言