隐藏和排除“覆盖率代码”选项卡上的某些参数 (Azure DevOps)

Hiding and excluding some parameters on the Coverage Code tab (Azure DevOps)

提问人:Oleg 提问时间:11/18/2023 更新时间:11/21/2023 访问量:52

问:

是否可以在“覆盖率代码”选项卡 (Azure DevOps) 中隐藏“风险热点”,并从“覆盖率代码”选项卡的测试结果中排除“Converge.Libraries.NuGetUtilities”和“nameWebApi”(作为示例)?是否可以在参数之后的参数中进行分步单元测试--logger:"console;verbosity=normal" --configuration $(buildConfiguration) --collect:"XPlat Code Coverage Risk Hotspots

nameWebApi

Nuget libraries

我尝试在 VS 代码中使用代码,但对我来说它也不起作用。

<?xml version="1.0" encoding="utf-8" ?>
<RunSettings>
    <DataCollectionRunSettings>
        <DataCollectors>
            <DataCollector friendlyName="XPlat code coverage">
                <Configuration>
                    <ModulePaths>
                        <Exclude>
                            <ModulePath>.*NuGet.*</ModulePath>
                            <ModulePath>.*nameWebApi.*</ModulePath>                         
                        </Exclude>
                    </ModulePaths>
                </Configuration>
            </DataCollector>
        </DataCollectors>
    </DataCollectionRunSettings>
</RunSettings>
azure-pipelines 代码覆盖率

评论


答:

0赞 Dou Xu-MSFT 11/20/2023 #1

我可以与您确认您正在管道中使用扩展转换覆盖率报告吗?如果是这样,您可以使用参数来禁用风险热点。ReportGeneratorcustomSettings

settings:disableRiskHotspots=false

更多设置请参考文档:https://github.com/danielpalme/ReportGenerator/wiki/Settings

是否可以在参数 xxxx 之后的参数中进行步进单元测试?

是的, 你可以的。

例:

 - task: DotNetCoreCLI@2
    displayName: Test .NET
    inputs:
      command: test
      projects: '**\*Test*.csproj'
      publishTestResults: false
      arguments: '--logger:"console;verbosity=normal" --configuration $(buildConfiguration) --collect:"XPlat Code Coverage'

关于命令的更多信息,可以参考文档: https://learn.microsoft.com/en-us/dotnet/core/tools/dotnet-test#examplesdotnet test

除了解决方案中的“Converge.Libraries.NuGetUtilities”和“nameWebApi”(例如)项目之外?

更新

通过查看 YAML 示例,我们可以看到输入:

customSettings: '' # Optional custom settings (separated by semicolon). See: https://github.com/danielpalme/ReportGenerator/wiki/Settings.

例:

- task: reportgenerator@5
  displayName: ReportGenerator
  inputs:
    reports: 'coverage.xml' 
    targetdir: 'coveragereport' 
    customSettings: 'settings:disableRiskHotspots=true' 

我尝试在 VS 代码中使用代码,但对我来说它也不起作用。

如果要从代码覆盖率分析中排除某些程序集,可以在 .runsettings 文件中添加 Exclude。

<ModulePaths>
  <Exclude>
   <ModulePath>.*Fabrikam.Math.UnitTest.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

然后添加到dotnet test task的参数中--settings <SETTINGS_FILE>

  arguments: '--logger:"console;verbosity=normal" --configuration $(buildConfiguration) --collect:"XPlat Code Coverage --settings <SETTINGS_FILE>'

或者,您可以在VStEST@2任务中使用输入。runSettingsFile

参考文档:https://learn.microsoft.com/en-us/azure/devops/pipelines/tasks/reference/vstest-v2?view=azure-pipelines

希望能帮到你。

评论

0赞 Oleg 11/20/2023
你好!你的意思是我可以将此设置添加到参数中?喜欢settings:disableRiskHotspots=false--logger:"console;verbosity=normal" --configuration $(buildConfiguration) --collect:"XPlat Code Coverage" settings:disableRiskHotspots=false
0赞 Dou Xu-MSFT 11/21/2023
是的,从查看 Yaml 示例来看,- task: reportgenerator@5 displayName: ReportGenerator inputs: reports: 'coverage.xml' targetdir: 'coveragereport' reporttypes: 'HtmlInline_AzurePipelines;Cobertura' customSettings: 'settings:disableRiskHotspots=true'