在 Azure DevOps Pipelines 中过滤代码覆盖率结果

问题描述 投票:0回答:1

我使用

VSTest@2
步骤和
codeCoverageEnabled: true
(.NET 项目)

运行测试
- task: VSTest@2
  displayName: 'Run Tests'
  inputs:
    vsTestVersion: 'toolsInstaller'
    platform: '$(buildPlatform)'
    configuration: '$(buildConfiguration)'
    codeCoverageEnabled: true

但是在“代码覆盖率”选项卡中,我可以看到所有外部依赖项(通过 NuGet 和 Native 管理):

我隐藏了所有名称,但红色的是外部依赖项,只有绿色的是我要测试的程序集。结果,总线路覆盖率远低于实际相关值...

如何过滤掉所有外部资源以仅获取我的代码的结果?

azure-devops azure-pipelines code-coverage vstest
1个回答
0
投票

经过一番研究,我找到了排除程序集的解决方法。您可以检查以下步骤。

1.在.runsettings文件中,添加以下配置以从代码覆盖率中排除特定模块(DLL):

<ModulePaths>
  <Exclude>
   <ModulePath>.*XXXX.dll</ModulePath>
   <!-- Add more ModulePath nodes here. -->
  </Exclude>
</ModulePaths>

https://learn.microsoft.com/en-us/visualstudio/test/customizing-code-coverage-analysis?view=vs-2022&source=recommendations#include-or-exclude-assemblies-and-members

2 使用 VSTest 任务中的

runSettingsFile
参数引用 .runsettings 文件。

- task: VSTest@2
  displayName: 'Run Tests'
  inputs:
    vsTestVersion: 'toolsInstaller'
    platform: '$(buildPlatform)'
    configuration: '$(buildConfiguration)'
    codeCoverageEnabled: true
    runSettingsFile: '<PATH/TO/FILE.RUNSETTINGS>'

希望能帮到你。

© www.soinside.com 2019 - 2024. All rights reserved.