【问题标题】:Exclude nuget packages from dotCover analysis从 dotCover 分析中排除 nuget 包
【发布时间】:2015-08-18 15:07:56
【问题描述】:

我们将 dotCover 用作 TFS 上的门控签入的一部分,以确保代码覆盖率至少达到一定百分比。我已经更改了构建过程以执行构建、运行 dotCover 并分析输出,但在项目中包含的 nuget 包方面发现了一个问题。

如果 nuget 包包含 .pdb 文件,dotCover 似乎认为它是分析和覆盖的公平候选者,这完全歪曲了结果。作为一种解决方法,我可以从解决方案中包含的包中删除 .pdb 文件,但这绝不是理想的,因为对 nuget 包的每次更新都可以将它们恢复。

请注意,dotCover 的 VisualStudio 界面不会遇到同样的问题。

谁能建议一种更强大的方法,我可以将 nuget 包排除在 dotCover 分析中吗?

干杯

【问题讨论】:

  • 您是否尝试指定排除过滤器? "/Filters=ARG: 使用以下语法指定覆盖过滤器:+:module=*;class=*;function=*; 使用 -:myassembly 从代码覆盖中排除程序集。这里支持星号通配符 (*)。"
  • @Maria 是的,尝试了这些,但不幸的是,他们倾向于从目标文件夹中删除所有 pdb 文件,这将导致根本没有代码覆盖率分析。理论上可能是可能的,但从我的尝试来看完全不切实际。无论如何感谢您的建议。
  • 您是否使用此模式指定了过滤器 -:[module_name]?或者,也许您可​​以在这里发布使用过的过滤器?或者,在这里提交请求:dotnettools-support.jetbrains.com/anonymous_requests/new
  • 我遇到了同样的问题,但我什至无法让排除过滤器工作。最后为它提交了一张票给 TeamCity (youtrack.jetbrains.com/issue/TW-48404)。

标签: tfs nuget nuget-package dotcover


【解决方案1】:

我能想到的最好方法是解释我们是如何做到的。 我们有一个基本名称的解决方案:COMPANY.BOUNDED-CONTEXT 所有项目中的所有命名空间都遵循它:COMPANY.BOUNDED-CONTEXT.Data.Sql、COMPANY.BOUNDED-CONTEXT.Common 等。

现在在运行 dotcover 时,我们只使用带有 COMPANY.BOUNDED-CONTEXT.* 的程序集过滤器。*

【讨论】:

  • 我想你不明白,是第三方项目导致了问题,而不是我们自己的项目,因此也不是我们可以控制的命名空间。因此,如上所述,我们无法轻松设置过滤器。我们最终放弃了 dotcover,我们认为它没有给我们足够的努力回报。
  • 我们也有来自 nuget 包的代码覆盖,其中包含 pdf 文件。这就是为什么我建议使用包含策略而不是排除策略进行过滤。鉴于这个问题已经很老了,我回答了它,所以也许其他人可以从中受益。很高兴你也有一个解决方案。
猜你喜欢
  • 1970-01-01
  • 2021-11-18
  • 1970-01-01
  • 1970-01-01
  • 2023-03-14
  • 1970-01-01
  • 2019-12-26
  • 2013-01-05
  • 1970-01-01
相关资源
最近更新 更多