【问题标题】:Visual Studio .runsettings excluding too many assemblies排除太多程序集的 Visual Studio .runsettings
【发布时间】: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


【解决方案1】:

好的,我找到了问题所在:https://stackoverflow.com/a/15961727/283787

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

所以当我把它改成跟随它工作正常:

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

【讨论】:

    【解决方案2】:

    这应该做你想做的:

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

    【讨论】:

    • 我已经尝试过了,但结果中仍然有 10 个 tfsbuildextension.xxx.dll 程序集。
    猜你喜欢
    • 1970-01-01
    • 2023-02-03
    • 2013-01-05
    • 1970-01-01
    • 1970-01-01
    • 2011-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多