1. 配置sonar
使用jenkins插件 SonarScanner for MSBuild - Begin Analysis
/d:sonar.language=cs
/d:sonar.sourceEncoding=UTF-8
/d:sonar.cs.opencover.reportsPaths=Coverage.xml
/d:sonar.branch.name=${BRANCH}
2. 使用opencover生成報告的xml文件
第一種方式
"D:\Program Files (x86)\OpenCover\OpenCover.Console.exe" -oldStyle -skipautoprops -register:user -output:"Coverage.xml" -target:"C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe" -targetargs:"Xyz/Tests/XyzTest/bin/Debug/netcoreapp3.1/XyzTest.dll"
第二種方式
"D:\Program Files (x86)\OpenCover\OpenCover.Console.exe" -target:"c:\Program Files\dotnet\dotnet.exe" -targetargs:"test" -output:coverage.xml -oldStyle -register:user
3. 在使用opencover生成報告時候報錯
4. 解決辦法
在單元測試的工程文件中添加 <DebugType>full</DebugType>
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
<DebugType>full</DebugType>
<IsPackable>false</IsPackable>
</PropertyGroup>
7. 使用opencover4.7版本不需要設置 <DebugType>full</DebugType>
6. 參考資料
https://automationrhapsody.com/code-coverage-net-core-unit-tests-opencover/