我试图通过使用runsettings文件来限制在TFS中的代码覆盖率过程中分析的程序集,但是即使我明确地将它们排除在外,一些程序集也坚持要进行分析.
这是我目前的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>.*Cloud4Mobile.*</ModulePath>
</Include>
<Exclude>
<ModulePath>.*Tests.dll$</ModulePath>
<ModulePath>.*TestUtilities.dll$</ModulePath>
</Exclude>
</ModulePaths>
<CompanyNames>
<Include>.*Mobiltec.*</Include>
</CompanyNames>
</CodeCoverage>
</Configuration>
</DataCollector>
</DataCollectors>
</DataCollectionRunSettings>
</RunSettings>
Run Code Online (Sandbox Code Playgroud)
但是,当我从Visual Studio运行代码覆盖率来测试此文件时,分析仍然显示其他与我的过滤器不匹配的程序集,如AutoMapper和CacheManager:
请注意,默认情况下,我的设置已经排除了这些程序集,但即使这样,我也尝试明确地将它们排除在无效之外,如下所示:
<Exclude>
<ModulePath>^AutoMapper.dll$</ModulePath>
...
</Exclude>
Run Code Online (Sandbox Code Playgroud)
我尝试了正则表达式的所有变体,从限制较少(使用.*)到限制性最强(如该示例).这些程序集污染了我在TFS构建摘要中获得的报告,我想将它们从分析中删除.这是我从TFS获得的完整输出,这显然是无用的:
我设法使用此.runsettings配置文件删除了大部分内容,但是如何确保这些异常值也不会显示在那里?为什么他们甚至首先显示,考虑到它们与我的包含过滤器完全匹配?