如何通过runsettings文件将迁移文件夹排除在代码覆盖率分析结果之外
配置失效原因&解决方案
你之前的配置未生效主要有两个原因:
- 正则表达式写法不规范,
.*\.Data.Migrations\..**末尾的.**属于错误的正则语法,无法匹配到完整的类路径 - 仅使用
<Function>节点匹配稳定性不足,容易出现遗漏,推荐搭配多维度规则提升可靠性
修正后的完整配置
<?xml version="1.0" encoding="utf-8"?> <RunSettings> <DataCollectionRunSettings> <DataCollectors> <DataCollector friendlyName="Code Coverage" uri="datacollector://Microsoft/CodeCoverage/2.0" assemblyQualifiedName="Microsoft.VisualStudio.Coverage.DynamicCoverageDataCollector, Microsoft.VisualStudio.TraceCollector, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <Configuration> <CodeCoverage> <!-- 保留你原有的其他配置项 --> <!-- 按命名空间排除,最直观可靠 --> <Namespaces> <Exclude> <Namespace>MySolution.Data.Migrations.*</Namespace> </Exclude> </Namespaces> <!-- 修正正则后的函数匹配规则,作为补充校验 --> <Functions> <Exclude> <Function>^MySolution\.Data\.Migrations\..*$</Function> </Exclude> </Functions> <!-- 按目录排除,避免命名空间和文件目录不一致的特殊情况 --> <SourceFiles> <Exclude> <SourceFile>.*\\Migrations\\.*\.cs$</SourceFile> </Exclude> </SourceFiles> </CodeCoverage> </Configuration> </DataCollector> </DataCollectors> </DataCollectionRunSettings> </RunSettings>
生效前检查项
- Visual Studio环境下运行测试,需要先将该文件设置为活动运行配置:顶部菜单 > 测试 > 配置运行设置 > 选择解决方案中的文件,选中你编写的
codecoverage.runsettings - 命令行执行
dotnet test时,需要指定配置文件参数:dotnet test --settings codecoverage.runsettings - 清理之前生成的测试缓存和旧的覆盖率结果文件,重新运行测试生成新的报告即可
内容的提问来源于stack exchange,提问作者Ramin Bateni Parvar
相关产品推荐
相关产品推荐

