【发布时间】:2020-10-28 07:15:51
【问题描述】:
VSO 构建管道和 Visual Studio 本地之间存在一些代码覆盖率不一致。我们发现 Visual Studio 中的代码覆盖率更高,因为它将括号计为代码覆盖率的一部分。但由于某种原因,它不计入 VSO 构建管道。有谁知道为什么?这是 VSO 中的已知错误吗?
我们使用 Xunit 和 c# 进行测试,并使用 test.runsettings 排除代码。下面是 test.runsettings 文件
<?xml version="1.0" encoding="utf-8"?>
<RunSettings>
<!-- Configurations that affect the Test Framework -->
<RunConfiguration>
<!-- Path relative to directory that contains .runsettings file-->
<ResultsDirectory>.\TestResults</ResultsDirectory>
<TargetPlatform>x64</TargetPlatform>
<MaxCpuCount>10000</MaxCpuCount>
</RunConfiguration>
<!-- Configurations for data collectors -->
<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>
<Attributes>
<Exclude>
<Attribute>^System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverageAttribute$</Attribute>
</Exclude>
</Attributes>
<ModulePaths>
<Exclude>
<ModulePath>.*unittests.dll$</ModulePath>
<ModulePath>.*integrationtests.dll$</ModulePath>
<ModulePath>.*xunit.*.dll</ModulePath>
<ModulePath>.*fluentassertions.*$</ModulePath>
<ModulePath>.*moq.*$</ModulePath>
<ModulePath>.*telemetry.extensions.ai.netcore.*$</ModulePath>
<ModulePath>.*newtonsoft.*$</ModulePath>
<ModulePath>.*codeanalysis.*$</ModulePath>
</Exclude>
</ModulePaths>
<!-- We recommend you do not change the following values: -->
<UseVerifiableInstrumentation>True</UseVerifiableInstrumentation>
<AllowLowIntegrityProcesses>True</AllowLowIntegrityProcesses>
<CollectFromChildProcesses>True</CollectFromChildProcesses>
<CollectAspDotNet>False</CollectAspDotNet>
</CodeCoverage>
</Configuration>
</DataCollector>
</DataCollectors>
</DataCollectionRunSettings>
</RunSettings>
【问题讨论】:
-
您在本地和 DevOps 中使用相同的测试适配器吗?您能否分享一下您是如何配置 DevOps 管道的?另外,你能分享一下 VS 和 DevOps 的详细日志吗?如果可能,请提供一个示例项目,以便我们重现您的场景。
-
这个问题有什么更新吗?
-
@CeceDong-MSFT 谢谢,我将在下面更新我的答案。问题已解决。
标签: visual-studio unit-testing azure-devops azure-pipelines xunit