我有一个解决方案。在那个解决方案中,我有 4 个项目和一个额外的测试项目。覆盖范围正在检查其中 2 个项目和测试项目。我并不真正关心排除测试,但我确实需要由于某种原因被错过的 1 项目。
我创建了一个 .runsettings 文件并将其连接到 Visual Studio 中。
<RunSettings>
<DataCollectionRunSettings>
<DataCollectors>
<DataCollector friendlyName="Code Coverage">
<Configuration>
<CodeCoverage>
<ModulePaths>
<Include>
<!-- https://msdn.microsoft.com/en-us/library/jj159530.aspx
If <Include> is empty, then code coverage processing includes all assemblies (.dll and
.exe files) that are loaded and for which .pdb files can be found, except for items
that match a clause in an <Exclude> list.
-->
</Include>
</ModulePaths>
</CodeCoverage>
</Configuration>
</DataCollector>
</DataCollectors>
</DataCollectionRunSettings>
</RunSettings>
但这并没有找到项目。所以我为“任何东西”尝试了一个 ModulePath,还尝试显式添加 DataLoader 和 DataAccess 项目(未检查覆盖范围的项目)
<RunSettings>
<DataCollectionRunSettings>
<DataCollectors>
<DataCollector friendlyName="Code Coverage">
<Configuration>
<CodeCoverage>
<ModulePaths>
<Include>
<ModulePath>.*</ModulePath>
<ModulePath>src/DataLoader/.*</ModulePath>
<ModulePath>src/DataAccess/.*</ModulePath>
</Include>
</ModulePaths>
</CodeCoverage>
</Configuration>
</DataCollector>
</DataCollectors>
</DataCollectionRunSettings>
</RunSettings>
但它仍然不起作用。我可以找到关于如何从我的运行设置中排除某些内容的各种结果,但是如何修复不正确的某些内容?
我的解决方案结构如下所示:
- 解决方案
- 解决方案.sln
- CodeCoverage.runsettings
- ... ETC...
- 源/
- DataLoader/(✖️ 未检查覆盖范围)
- 数据加载器.xproj
- ...
- bin/Debug/net461/DataLoader.exe 和 .pdb
- 数据访问/ (✖️)
- 数据访问.xproj
- ...
- bin/Debug/net461/DataAccess.exe 和 .pdb
- 数据服务/ (✔️)
- 数据服务.xproj
- ...
- bin/Debug/net461/DataService.exe 和 .pdb
- 数据模型/ (✔️)
- 数据模型.xproj
- ...
- bin/Debug/net452/DataModels.dll 和 .pdb
- DataLoader/(✖️ 未检查覆盖范围)
- 测试/Solution.Test/ (✔️)
- bin/Debug/net461/Solution.Test.dll 和 .pdb
- ...
- 解决方案.Test.xproj