【问题标题】:Nunit and code coverage for C#C# 的 Nunit 和代码覆盖率
【发布时间】:2011-04-27 09:02:40
【问题描述】:

我正在使用 C# + .Net 4.0 + VSTS 2010。我想知道 Nunit 是否是该平台(C# + .Net 4.0 + VSTS 2010)最好且易于学习的单元测试工具?如果是,我想学习 Nunit 的基础知识,也想了解如何根据 Nunit 结果生成代码覆盖率报告(例如代码覆盖率报告,以显示测试了哪些函数,哪些函数未测试,测试了多少行。 )

对于 Nunit 和新手代码覆盖率有什么推荐的教程吗?

【问题讨论】:

    标签: c# .net visual-studio-2010 unit-testing nunit


    【解决方案1】:

    我将本关于 NUnit 的初学者教程发送给与我一起工作的一些初级人员

    http://www.dotnetspider.com/tutorials/NUnit-Tutorials.aspx

    在您掌握单元测试之前,我暂时不会担心覆盖率。单元测试涉及更多的东西,比如依赖注入和模拟框架,以确保代码被覆盖并且是可测试的。

    我个人先从事集成和单元测试工作,然后再进行覆盖 - 只需我的 2 美分

    希望对你有帮助

    保罗

    【讨论】:

    • 谢谢保罗!我看到教程是关于 Nunit 的,你能不能也向我推荐一些覆盖率报告教程?
    • 可能有助于查看 NCover(它不是免费的),但有一个很好的部分介绍了如何开始使用代码覆盖 docs.ncover.com/how-to/getting-started-with-code-coverage
    • 嗨,Paul,我阅读了您推荐给我的 nunit 教程。我发现这只是一个一般性的介绍,我想学习的是一个教程,它是一步一步的指导,告诉我如何用 nunit 对一些特定的代码示例进行单元测试。有什么建议吗?谢谢。
    • 如果你愿意,我会帮助你 - 我的邮件地址是 paulstack [at] hotmail [dot] com - 把你想做的事发邮件给我,我会帮你的 :)
    • 如果你能负担得起买一本名为“单元测试的艺术”的书amzn.to/9q2DZl - 否则试试这个 - 4guysfromrolla.com/articles/011905-1.aspx - 很难为此提出建议。这本书将 100% 的帮助,因为它太棒了。永远不要觉得你会浪费我的时间。我们都需要帮助才能朝着正确的方向前进:)
    【解决方案2】:

    对于代码覆盖率,您可以使用 ncover,有一个很好的集成到 VS 中,称为 testdriven.net。 如果您使用的是 VS 2010,您可能还需要检查内置测试框架 (MSTest),它也具有内置覆盖率

    希望对你有帮助

    【讨论】:

    • 酷,你能为像我这样的新手推荐一个 ncover 教程吗?
    • 哎呀,对不起。并不是要发送那个:)。我将跳过有关如何将 xml 加载到报告浏览器中的命令行部分,因为在使用 testdriven.net 时这非常简单。另外,请注意,如果您使用 VS 2010 集成版本,您可以直接在 VS 上看到突出显示的代码,而不是打开不同程序的 ncover。
    • 谢谢!我发现入门指南非常有帮助。我也想学习nunit,你能推荐一个分步指南来告诉我如何用nunit对一些特定的代码示例进行单元测试吗?谢谢。
    • NCover 现在是一个商业产品。 OpenCover 是一个开源替代品github.com/OpenCover/opencover
    【解决方案3】:

    制造 ReSharper (JetBrains) 的公司现在拥​​有自己的覆盖工具,称为 dotCover。到目前为止,我认为 dotcover 和 Resharper 结合起来比 ncover 便宜。

    【讨论】:

      【解决方案4】:

      C# 中具有覆盖率的单元测试

      我知道自从 OP 以来事情发生了一些变化,但 coverlet 是免费的,在 ms tutorial for C# unit test code coverage 中使用,并且支持 nunit、xunit 和 mstest。 基本说明是将包添加到您的 C# 测试项目中:

      dotnet add package coverlet.collector

      然后使用标志运行测试:

      dotnet test --collect:"XPlat Code Coverage"

      可能题外话 VSCode 覆盖率显示插件说明

      VSCode coverage-gutters 可用于消费输出。它将您的源代码着色作为显示覆盖结果的一种方式。

      看起来coverlet 生成了一个名为“coverage.cobertura.xml”的文件,因此您只需将其添加到要查找的coverage 文件列表中即可。在 settings.json 添加以下设置:

      "coverage-gutters.coverageFileNames": ["coverage.cobertura.xml"],

      然后运行“Coverage Gutters: Watch”命令。

      【讨论】:

      • 警告:使用这些说明,每次运行测试时都会创建一个新的覆盖率文件,并且我的带有排水沟的 vscode 设置会将它们全部组合起来(因此,如果运行测试,删除一个测试,然后重新运行,它仍会显示原始覆盖范围)。我确定可以修复,但我现在没有时间研究它。
      猜你喜欢
      • 2023-04-07
      • 1970-01-01
      • 1970-01-01
      • 2013-08-22
      • 2012-02-23
      • 2016-05-29
      • 1970-01-01
      • 2018-01-11
      相关资源
      最近更新 更多