我试图从代码覆盖率分析中排除一个文件夹,但经过大量的试验和错误尝试和研究后,我没有取得任何成功。
这是我在构建管道中的测试任务:
- task: DotNetCoreCLI@2
displayName: 'Running Unit Tests'
inputs:
command: test
projects: '$(unitTestsProject)'
arguments: '--configuration $(buildConfiguration) --settings ./cover.runsettings'
publishTestResults: true
continueOnError: false
在运行设置中我尝试了不同的方法,其中一些如下:*
<DataCollector friendlyName="XPlat code coverage">
<Configuration>
<CodeCoverage>
<ModulePaths>
<Exclude>
<ModulePath>.*Migrations.*</ModulePath>
<ModulePath>.*\\Migrations\\.*</ModulePath>
</Exclude>
</ModulePaths>
</CodeCoverage>
</Configuration>
</DataCollector>
<DataCollector friendlyName="XPlat code coverage">
<Configuration>
<CodeCoverage>
<ExcludeDirectories>
<Directory>.*\\Migrations\\.*</Directory>
</ExcludeDirectories>
</CodeCoverage>
</Configuration>
</DataCollector>
以上所有变体均无效。但是,当我在不想包含在代码覆盖率中的每个类上使用属性 [ExcludeFromCodeCoverage] 时,它效果很好。我需要它从 runsettings 文件中工作,因为迁移文件夹会快速增长,并且继续遍历生成的类并添加属性是不切实际的。
任何帮助或指导将不胜感激。谢谢
最佳答案
根据此文档 Customize code coverage analysis ,您可以测试用下面的代码定义您的代码。
<!-- Match the path of the source files in which each method is defined: -->
<Sources>
<Exclude>
<Source>.*\\atlmfc\\.*</Source>
<Source>.*\\vctools\\.*</Source>
<Source>.*\\public\\sdk\\.*</Source>
<Source>.*\\microsoft sdks\\.*</Source>
<Source>.*\\vc\\include\\.*</Source>
</Exclude>
</Sources>
关于asp.net - Azure DevOps 构建管道 - 从代码覆盖范围中排除文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74849106/