我正在使用.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程序集。
我应该在排除部分指定什么来排除以下程序集?
答案 0 :(得分:1)
好的,我发现问题出在这里:https://stackoverflow.com/a/15961727/283787
正则表达式正在寻找一个路径,而不仅仅是模块名称,你需要在模块前面使用。*来忽略它 - 也就是说,你想在任何给定的文件路径上忽略它。
因此,当我将其更改为以下时,它工作正常:
<ModulePaths>
<Exclude>
<ModulePath>.*tests\.dll$</ModulePath>
<ModulePath>.*tfsbuildextensions\..*\.dll$</ModulePath>
</Exclude>
</ModulePaths>
答案 1 :(得分:0)
这应该做你想要的:
<!-- Match assembly file paths: -->
<ModulePaths>
<Include />
<Exclude>
<ModulePath>^.*Tests\.dll$</ModulePath>
<ModulePath>^tfsbuildextensions\..*\.dll$</ModulePath>
</Exclude>
</ModulePaths>