我试图在Azure DevOps构建管道中为我的解决方案之一生成代码覆盖率。虽然我的测试结果与Cobertura代码覆盖报告一起在构建完成时出现,但我想从代码覆盖率报告中排除许多文件和名称空间,因为它们不是可测试的代码单元(例如,模型或数据库迁移)。
我知道我可以使用coverlet.runsettings.xml文件来进行命名空间排除,但这似乎不起作用。
我的运行设置文件是在一个正在运行的测试项目中安装的,设置如下:
<?xml version="1.0" encoding="utf-8" ?>
<RunSettings>
<DataCollectionRunSettings>
<DataCollectors>
<DataCollector friendlyName="XPlat code coverage">
<Configuration>
<Exclude>[MyDatabase.Migrations.*]*,[*]MyDatabase.Migrations*</Exclude>
</Configuration>
</DataCollector>
</DataCollectors>
</DataCollectionRunSettings>
</RunSettings>我试图排除位于MyDatabase.Migrations命名空间下的所有文件,但是上面使用的语法似乎没有任何效果,而且我仍然可以在Devops的最终代码覆盖率报告中看到这个名称空间下的文件。
我的管道设置如下:
steps:
- task: DotNetCoreCLI@2
displayName: 'Build'
inputs:
command: 'build'
projects: '$(solution)'
arguments: '--configuration $(buildConfiguration)'
- task: DotNetCoreCLI@2
displayName: 'Tests'
inputs:
command: 'test'
projects: |
**\MyDatabase.Tests
**\MySearch.Common.Tests
**\MySearchService.Tests
**\MyConfiguration.Tests
arguments: '--configuration $(buildConfiguration) --collect:"XPlat Code Coverage"'
publishTestResults: true
# ReportGenerator extension to combine code coverage outputs into one
- task: reportgenerator@5
inputs:
reports: '$(Agent.WorkFolder)/**/coverage.cobertura.xml'
targetdir: '$(Build.SourcesDirectory)/CoverageResults'
- task: PublishCodeCoverageResults@1
displayName: 'Publish code coverage report'
inputs:
codeCoverageTool: 'Cobertura'
summaryFileLocation: '$(Build.SourcesDirectory)/CoverageResults/Cobertura.xml'
reportDirectory: '$(Build.SourcesDirectory)/CoverageResults'我知道我可以使用ExcludeFromCodeCoverage标记,但是对于自动生成的东西,比如迁移,这可能会变得非常混乱,每次生成新的标记时,都需要对它们进行修改。
我希望在生成的报告中完全省略迁移文件夹。
如果能在这个问题上提供任何帮助,我们将不胜感激。
发布于 2022-05-10 10:25:10
VSTestIntegration文档表明您需要将自定义运行设置文件包含为agrument:
可以使用给定的命令行选项轻松地提供这个运行设置文件:
dotnet test --collect:"XPlat Code Coverage" --settings coverlet.runsettings
尝试以下几点:
arguments: '--configuration $(buildConfiguration) --collect:"XPlat Code Coverage" --settings [path to tests project]\coverlet.runsettings.xml'
https://stackoverflow.com/questions/72169701
复制相似问题