我试图通过使用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>
但是,当我从Visual Studio运行代码覆盖率来测试此文件时,分析仍然显示其他与我的过滤器不匹配的程序集,如AutoMapper和CacheManager:
请注意,我的设置默认情况下已经排除了这些程序集,但即使这样,我也尝试明确地将它们排除在无效之外,如下所示:
<Exclude>
<ModulePath>^AutoMapper.dll$</ModulePath>
...
</Exclude>
我尝试了正则表达式的所有变体,从限制较少(使用。*)到限制性最强(如该示例)。这些程序集污染了我在TFS构建摘要中获得的报告,并且我想将它们从分析中删除。这是我从TFS获得的完整输出,这显然是无用的:
我设法使用此.runsettings配置文件删除了大部分内容,但是如何确保这些异常值也没有在那里显示?为什么他们甚至在第一时间显示,考虑到它们根本不与我的包含过滤器相匹配?
答案 0 :(得分:2)
我的猜测是.
中的Automapper.dll
导致问题。你能尝试使用
<Exclude>
<ModulePath>.*AutoMapper\.dll$</ModulePath>
对于默认排除所有内容的情况,您应该在模块路径排除项中使用.*\.dll
。
答案 1 :(得分:0)
这看起来很明显,但您是否更新了构建定义以包含.runsettings文件?在您的构建中启用CodeCoverage是一回事,但您必须提供.runsettings文件的路径。