我使用
VSTest@2
步骤和 codeCoverageEnabled: true
(.NET 项目) 运行测试
- task: VSTest@2
displayName: 'Run Tests'
inputs:
vsTestVersion: 'toolsInstaller'
platform: '$(buildPlatform)'
configuration: '$(buildConfiguration)'
codeCoverageEnabled: true
但是在“代码覆盖率”选项卡中,我可以看到所有外部依赖项(通过 NuGet 和 Native 管理):
我隐藏了所有名称,但红色的是外部依赖项,只有绿色的是我要测试的程序集。结果,总线路覆盖率远低于实际相关值...
如何过滤掉所有外部资源以仅获取我的代码的结果?
经过一番研究,我找到了排除程序集的解决方法。您可以检查以下步骤。
1.在.runsettings文件中,添加以下配置以从代码覆盖率中排除特定模块(DLL):
<ModulePaths>
<Exclude>
<ModulePath>.*XXXX.dll</ModulePath>
<!-- Add more ModulePath nodes here. -->
</Exclude>
</ModulePaths>
2 使用 VSTest 任务中的
runSettingsFile
参数引用 .runsettings 文件。
- task: VSTest@2
displayName: 'Run Tests'
inputs:
vsTestVersion: 'toolsInstaller'
platform: '$(buildPlatform)'
configuration: '$(buildConfiguration)'
codeCoverageEnabled: true
runSettingsFile: '<PATH/TO/FILE.RUNSETTINGS>'
希望能帮到你。