【问题标题】:What are the most effective (freely available) tools for C# code coverage? [closed]什么是 C# 代码覆盖最有效(免费)的工具? [关闭]
【发布时间】:2011-07-22 13:11:39
【问题描述】:

在编写 C# 时,Visual Studio C# Express 版是一个足够的 IDE - 而 NUnit 是一个足够的框架来编写单元测试。然而,这种配对不足以建立这些测试的代码覆盖率。

我意识到 Professional 和 Ultimate 版本与 MSTest 集成并提供完全集成的代码覆盖范围......但这限制了对购买相关 IDE 的用户的覆盖范围验证 - 这并不理想。

我不担心将覆盖率分析集成到 IDE 中...这是一种方法,但我对批处理生成的报告同样满意...这可以集成到持续集成中。

我担心覆盖率指标的质量 - 例如,我想要分支级别的覆盖率分析,而不仅仅是行级别。

我认为 Visual Studio Professional/Ultimate 对于 Mono 环境中的开发人员来说不是一个理想的解决方案......谁能告诉我在这种情况下通常使用什么?

【问题讨论】:

  • 不付钱对你来说很重要吗?否则您有更多选择,例如 DotCover - jetbrains.com/dotcover
  • 为什么人们不赞成这个问题?
  • @Vijay,虽然我保护自己并说我没有投反对票;我想是因为缺乏研究。这里已经有很多这样的问题,有很多关于可通过谷歌搜索的不同工具的优点的文章,等等。=)
  • @J. Steen:我没有指责那里的任何人:) 如果一个问题需要否决,那么它应该得到。我是这个社区的新手,所以我正在了解这里的情况。
  • @Vijay,一般来说,您可以通过将鼠标悬停在控件和链接上来获得有关 SO 特性和功能的提示。经常会有一个解释性的工具提示。 =)

标签: c# code-coverage


【解决方案1】:

NCrunch 非常酷。它会在代码的左侧为您提供可视指示符,让您知道它是否被覆盖,以及对它的测试是否已通过。

http://www.ncrunch.net/

【讨论】:

  • NCrunch 看起来不错......非常感谢......但是 - 我认为它不适合我现在想要的东西,因为它只是在测试期间免费......无论我采用什么策略,我想确保它会在未来几年“工作”......
  • 还有一个名为 Continuous Tests (continuoustests.com) 的工具提供类似的功能
【解决方案2】:

OpenCover 和 PartCover 是目前的两个主要工具。

PartCover 是最古老的,并且不再在 SourceForge 上积极维护。此后对该实用程序的支持已移至 GitHub (PartCover on GitHub)

OpenCover 较新,也在 GitHub (OpenCover on GitHub) 上,它支持 64 位和 32 位,并克服了 PartCover 的一些限制(内存和结果交付)。

TypeMock 都支持两者(我认为 OpenCover 支持即将添加,请参阅 Can Opencover be used with TypeMock Isolator?

可以使用 ReportGenerator () 提供 PartCover 和 OpenCover 的报告

【讨论】:

  • 非常感谢! OpenCover 看起来似乎是一种真正的可能性——尤其是因为它似乎比 PartCover 更有可能拥有广泛的分支覆盖支持。也感谢您指向 ReportGenerator 的指针……这非常有帮助。
【解决方案3】:

PartCover?

还是SharpDevelop? SharpDevelop 是一个替代 IDE,它比 Express 版本的 VS 具有更多的功能。

【讨论】:

  • 非常感谢 - 我是 SharpDevelop 的负责人 - 但我认为它会明显逊于 Visual Studio (Express)。我一定会试一试...但我注意到它不会让我超越 PartCover 作为覆盖工具...
  • 我不明白你的信息中的“它不会让我超越......”。 SD 是相当不错的 IDE,我知道有些人用它来开发商业应用程序,更好地集成了来自 IDE 的单元测试/代码覆盖率/版本控制。
  • 对不起,我不清楚。我现在看到的 SharpDevelop 给我留下了深刻的印象。我正在考虑将它作为 Visual Studio 的替代品,独立于代码覆盖率。 “让我超越”PartCover 是因为 SD 使用 PartCover 来提供其代码覆盖功能......而且,根据 SourceForge 的说法,最新的 PartCover 版本是 2008 年 9 月的 2.2 版......所以我怀疑它会得到很好的支持对于 C#4.0 中引入并随 Visual Studio 2010 一起提供的功能。我希望找到比这更最新且受到积极支持的东西。
  • github.com/sawilde/partcover.net4 - 此链接是最新的,并且还声称支持 .Net 4。
【解决方案4】:

我很惊讶没有人提到这一点,但是 Visual Studio Team Edition 附带了一个代码覆盖工具。 (它是团队工具套件的一部分)。此外,当您在 VS Team Edition 中运行单元测试时,它会自动执行代码覆盖率。 :)

因此,如果您已经拥有团队版,那么它在某种意义上是免费的,但团队版当然会花费更多。就这样吧。

【讨论】:

    猜你喜欢
    • 2010-10-05
    • 2010-12-12
    • 2011-03-02
    • 2010-11-28
    • 1970-01-01
    • 1970-01-01
    • 2011-05-10
    • 1970-01-01
    • 2010-09-25
    相关资源
    最近更新 更多