Visual Studio .runsettings 排除了太多程序集



我正在使用 .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 程序集。

我应该在排除部分中指定什么来排除以下程序集?

    我的
  • 公司.我的项目1.测试.dll
  • MyCompany.AnyProjectName.Tests.dll
  • TFSBuildExtensions.XXX.dll
好的,

所以我在这里找到了问题所在:https://stackoverflow.com/a/15961727/283787

正则表达式正在寻找一个路径,而不仅仅是一个模块名称,你需要模块前面的 .* 来忽略它——也就是说,你想在任何给定的文件路径上忽略它。

因此,当我将其更改为以下时,它工作正常:

<ModulePaths>
  <Exclude>
    <ModulePath>.*tests.dll$</ModulePath>
    <ModulePath>.*tfsbuildextensions..*.dll$</ModulePath>
  </Exclude>
</ModulePaths>

这应该可以做你想要的:

<!-- Match assembly file paths: -->
<ModulePaths>
  <Include />
  <Exclude>
    <ModulePath>^.*Tests.dll$</ModulePath>
    <ModulePath>^tfsbuildextensions..*.dll$</ModulePath>
  </Exclude>
</ModulePaths>

相关内容

  • 没有找到相关文章

最新更新