【发布时间】:2014-11-25 10:17:12
【问题描述】:
我正在使用 .runsettings 文件来管理生成代码覆盖结果的程序集。
通过我的 .runsettings 文件中的以下部分,我得到了所有程序集,包括我的测试项目一些不需要的 TFSBuildExtensions 程序集:
<!-- Match assembly file paths: -->
<ModulePaths>
<Include />
<Exclude />
</ModulePaths>
所以我修改它以排除我的测试项目,这些项目都名为 MyCompany.MyProject1.Tests.dll
<!-- Match assembly file paths: -->
<ModulePaths>
<Include />
<Exclude>
<ModulePath>.*Tests.*</ModulePath>
</Exclude>
</ModulePaths>
但是现在所有我的程序集都被排除了,我只剩下 TFSBuildExtensions 程序集了。
我应该在排除部分指定什么来排除以下程序集?
- MyCompany.MyProject1.Tests.dll
- ...
- MyCompany.AnyProjectName.Tests.dll
- TFSBuildExtensions.XXX.dll
【问题讨论】:
-
你可以试试这个:
^(TFSBuildExtensions\..*\.dll)|.*Tests\.dll$ -
好的,所以我尝试了这个,但现在只有 TFSBuildExtensions 仍然存在。例如。 tfsbuildextensions.activities.dll。另外,我是否应该按照默认的 MS 模板使用单独的
节点? -
正则表达式区分大小写,除非另有说明。如果你想排除 tfsbuildextensions.activities.dll 你应该重写上面的表达式如下: ^(tfsbuildextensions\..*\.dll)|.*Tests\.dll$ 也使用不同的 ModulePath 对我来说似乎是个好主意:它将帮助您保持代码清晰。
-
@AndreaSalicetti 我已尝试按照您的建议使用正确的大小写,但 tfsbuildextension.xxx.dll 仍列在代码覆盖率结果中。我什至不确定它们是从哪里得到的,因为它们不在我的放置文件夹中。您知道为什么它们会包含在结果中吗?
标签: regex visual-studio-2012 code-coverage runsettings