我最近刚刚开始使用与VSTS的持续集成,并设置了一个管道,其中包括"Visual“任务。
在任务中,有一个选项可以作为测试的一部分执行代码覆盖扫描。
为了确保我的代码覆盖率仅涵盖我的代码,并创建了一个.RunSettings文件,仅包含我生成的程序集和b),代码中有一些具有[ExcludeFromCodeCoverage]属性的部分。
现在,当从Visual (2017 Enterprise15.7.4)执行Analyze Code Coverage时,一切都如我所料,只有我的程序集被分析,我排除的代码被排除在外。
但是,在运行VSTS管道时,不应用此类限制,所有程序集都会被测试,所有代码(包括特定排除的代码)都会被测试,这将导致代码覆盖率%的显着下降。
不知道从这里往哪里走,所以希望S/O社区能帮上忙。
更新-正在使用的RunSettings文件
<?xml version="1.0" encoding="utf-8"?>
<RunSettings>
<!-- 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>
<ModulePaths>
<Include>
<ModulePath>.*\.dll$</ModulePath>
</Include>
<Exclude>
<ModulePath>.*Tests.dll$</ModulePath>
<ModulePath>.*moq.dll$</ModulePath>
</Exclude>
</ModulePaths>
<UseVerifiableInstrumentation>False</UseVerifiableInstrumentation>
</CodeCoverage>
</Configuration>
</DataCollector>
</DataCollectors>
</DataCollectionRunSettings>
发布于 2018-09-05 08:19:07
这里有一个问题:RunSettings文件不在TFS VsTest任务中使用,您可以去查看关于这个问题的讨论。
作为解决办法,您可以使用以下.RunSettings格式(添加UseVerifiableInstrumentation = False)
<?xml version="1.0" encoding="utf-8"?>
<RunSettings>
<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>
<UseVerifiableInstrumentation>False</UseVerifiableInstrumentation>
<ModulePaths>
<Include>
<ModulePath>.*\\MyProjectName.*\.dll$</ModulePath>
</Include>
<Exclude>
<ModulePath>.*Tests.dll$</ModulePath>
</Exclude>
</ModulePaths>
</CodeCoverage>
</Configuration>
</DataCollector>
</DataCollectors>
</DataCollectionRunSettings>
</RunSettings>只需查看acesiddhu的解释:
您正在定义中使用visual studio测试工具安装程序任务。如果使用该任务,则需要将useverifiable属性设置为false,因为在xcopy模式下,我们不对上述dll的Microsoft.VisualStudio.CodeCoverage.Shim进行GAC (这是一个依赖项,需要在useverifiable设置为true时加载) 将此属性标记为false确保它不使用此特定的dll。
https://stackoverflow.com/questions/52160799
复制相似问题