运行 dotnet test --collect "Code coverage"时如何设置自定义覆盖结果文件路径?
How to set a custom coverage result file path when running dotnet test --collect "Code coverage"?
我按照 http://tdc1tfsapp01:8080/tfs/DefaultCollection/SharpTop/_packaging?_a=package&feed=dayforce&package=OrchardCore.Cms.Web&version=1.0.20098.7+1bcd36b1f8efd5484af49f8ec39c21060a64391e&protocolType=NuGet 上的说明进行操作,它确实生成了二进制覆盖率结果文件,并在构建时向其显示 link。
但是,我想将它转换为 Cobertura,以便在构建本身上发布。这是一个相当复杂的过程,需要:
- 下载 https://www.nuget.org/packages/Microsoft.CodeCoverage/ 包并在里面找到 CodeCoverage.exe。
- 运行 CodeCoverage.exe 将二进制覆盖结果转换为相应的 XML.
- 安装报告生成器 dotnet 工具
- 运行 将 XML 转换为 Cobertura
的报告生成器工具
- 我们终于可以发布到构建了
我的问题是在构建过程中我不知道二进制结果放在哪里。所以,我的问题是 - 我们可以自定义它的位置吗?
找到了。需要做三件事:
- 关闭自动发布来自
DotNetCoreCLI@2 test
命令的测试结果。这可以防止它注入自己的结果目录。
- 在
-r
参数中传递你自己的目录。
- 添加显式任务以发布测试结果。
以下是我 运行 测试的方式:
- task: DotNetCoreCLI@2
name: Test
displayName: Test
inputs:
command: 'test'
publishTestResults: false
arguments: '-c Release --no-build -l trx -r "$(Build.StagingDirectory)\tests" --collect "Code coverage"'
覆盖结果为$(Build.StagingDirectory)\tests\<SOME GUID>\*.coverage
您可以使用以下参数设置自定义覆盖路径是命令输入:
--results-directory D:\Desired\Location\
示例:
- task: DotNetCoreCLI@2
displayName: Test
inputs:
command: test
projects: src/folder1/folder2/ProjectTests.csproj
arguments: --results-directory D:\a\_work\_DesiredLocation --configuration $(BuildConfiguration) /p:CollectCoverage=true /p:CoverletOutputFormat=cobertura
我按照 http://tdc1tfsapp01:8080/tfs/DefaultCollection/SharpTop/_packaging?_a=package&feed=dayforce&package=OrchardCore.Cms.Web&version=1.0.20098.7+1bcd36b1f8efd5484af49f8ec39c21060a64391e&protocolType=NuGet 上的说明进行操作,它确实生成了二进制覆盖率结果文件,并在构建时向其显示 link。
但是,我想将它转换为 Cobertura,以便在构建本身上发布。这是一个相当复杂的过程,需要:
- 下载 https://www.nuget.org/packages/Microsoft.CodeCoverage/ 包并在里面找到 CodeCoverage.exe。
- 运行 CodeCoverage.exe 将二进制覆盖结果转换为相应的 XML.
- 安装报告生成器 dotnet 工具
- 运行 将 XML 转换为 Cobertura 的报告生成器工具
- 我们终于可以发布到构建了
我的问题是在构建过程中我不知道二进制结果放在哪里。所以,我的问题是 - 我们可以自定义它的位置吗?
找到了。需要做三件事:
- 关闭自动发布来自
DotNetCoreCLI@2 test
命令的测试结果。这可以防止它注入自己的结果目录。 - 在
-r
参数中传递你自己的目录。 - 添加显式任务以发布测试结果。
以下是我 运行 测试的方式:
- task: DotNetCoreCLI@2
name: Test
displayName: Test
inputs:
command: 'test'
publishTestResults: false
arguments: '-c Release --no-build -l trx -r "$(Build.StagingDirectory)\tests" --collect "Code coverage"'
覆盖结果为$(Build.StagingDirectory)\tests\<SOME GUID>\*.coverage
您可以使用以下参数设置自定义覆盖路径是命令输入:
--results-directory D:\Desired\Location\
示例:
- task: DotNetCoreCLI@2
displayName: Test
inputs:
command: test
projects: src/folder1/folder2/ProjectTests.csproj
arguments: --results-directory D:\a\_work\_DesiredLocation --configuration $(BuildConfiguration) /p:CollectCoverage=true /p:CoverletOutputFormat=cobertura