在我正在进行的项目中,如果我没有在runsettings文件中明确排除这些,则有两个nuget包包含在代码覆盖中,而其他第三方库不是。
这似乎是因为有问题的软件包在构建时会在单元测试项目的bin文件夹中生成一个PDB文件。
为什么有些软件包有PDB文件,而其他软件包不包含?有没有办法在没有PDB的情况下获得NuGet包?
有没有办法从代码覆盖中排除第三方库?
答案 0 :(得分:4)
发现您可以使用.runsettings
文件排除库。
这些可以在TFS构建定义中使用,也可以在Visual Studio中通过设置:
使用测试>测试设置>选择测试设置文件
排除库的runsettings文件的示例是:
<?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>
<ModulePaths>
<Include>
<ModulePath>.*Namespace.*.dll$</ModulePath>
</Include>
<Exclude>
<ModulePath>.*fluentassertions.*</ModulePath>
<ModulePath>.*htmlagilitypack.*</ModulePath>
</Exclude>
</ModulePaths>
<Attributes>
<Exclude>
<Attribute>^System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverageAttribute$</Attribute>
</Exclude>
</Attributes>
</CodeCoverage>
</Configuration>
</DataCollector>
</DataCollectors>
</DataCollectionRunSettings>
</RunSettings>