微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

VSTest@2 任务正在更新/覆盖 coverlet.runsettings 并且不尊重排除

如何解决VSTest@2 任务正在更新/覆盖 coverlet.runsettings 并且不尊重排除

我正在尝试向 Azure DevOps 中的 .NET Framework 4.8 解决方添加代码覆盖率。我的方法基于问题 herehere 以及 coverlet docs,并成功获得了代码覆盖率结果。

但是,此解决方案还包含许多共享项目,这些项目在不同的解决方案中进行了单元测试。我希望从覆盖率报告中排除这些项目以及测试项目本身。

在我的 coverlet.runsettings 文件中,我包含了以下基于 the docs 的行:

<Exclude>[coverlet.*.tests?]*,[*]Coverlet.Core*,[Company.*UnitTest]*</Exclude>
<Include>[Company.Application.*]*</Include>

但是,当使用 VSTest@2 运行测试时,我会在日志中看到以下内容

Provided settings file:
<?xml version="1.0" encoding="utf-8" ?>
<RunSettings>
  <DataCollectionRunSettings>
    <DataCollectors>
      <DataCollector friendlyName="XPlat code coverage">
        <Configuration>
          <Format>cobertura</Format>          
          <Exclude>[coverlet.*.tests?]*,[Company.*UnitTests]*</Exclude>
          <Include>[Company.Application.*]*</Include>
        </Configuration>
      </DataCollector>
    </DataCollectors>
  </DataCollectionRunSettings>
</RunSettings>
Updated Run Settings:
<RunSettings>
  <DataCollectionRunSettings>
    <DataCollectors>
      <DataCollector friendlyName="XPlat code coverage">
        <!-- As above -->
      </DataCollector>
      <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">
        <!-- Lots of configuration ommitted for brevity -->
      </DataCollector>
    </DataCollectors>
  </DataCollectionRunSettings>
  <runconfiguration>
    <MaxcpuCount>0</MaxcpuCount>
    <BatchSize>1000</BatchSize>
    <ResultsDirectory>D:\a\_temp\TestResults</ResultsDirectory>
  </runconfiguration>
</RunSettings>
**************** Starting test execution *********************

因此看来 VS 测试任务正在即时更改我的运行设置,然后不尊重包含和排除值

我的 yaml 是:

- task: VSTest@2
  displayName: 'Run Tests'
  inputs:
    testAssemblyVer2: '**\*UnitTests*.dll'
    searchFolder: '.\Output'
    codeCoverageEnabled: true
    runSettingsFile: .\Builds\coverlet.runsettings  

任何人都可以建议设置或其他方式来尊重包含和排除的内容吗?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。