寻求代码覆盖率和单元测试的建议

发布于 2024-09-29 15:48:16 字数 560 浏览 7 评论 0原文

我使用的是 VS2010 + C# + .Net 4.0。我想对单元测试进行代码覆盖率。经过调查后我有两个选择,我的问题是,我想知道这两种工具/选择的优缺点。

  1. 使用非 VS 内置工具,例如 ncover;
  2. 使用 VSTS 内置工具,例如

http: //msdn.microsoft.com/en-us/library/dd299398%28VS.90%29.aspx

http://msdn.microsoft.com/en-us/library/ms379625%28VS.80%29.aspx#vstsunittesting_topic7

I am using VS2010 + C# + .Net 4.0. I want to do code coverage for unit tests. I have two choices after investigating, my question is, I want to know the pros and cons of such two tools/choices.

  1. Using non-VS built-in tools, like ncover;
  2. Using VSTS built-in tool, for example,

http://msdn.microsoft.com/en-us/library/dd299398%28VS.90%29.aspx

http://msdn.microsoft.com/en-us/library/ms379625%28VS.80%29.aspx#vstsunittesting_topic7

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

过度放纵 2024-10-06 15:48:16

使用过这两种工具后,它们的工作方式几乎相同。您运行测试,然后查看报告。这两个工具都提供代码突出显示功能,以显示哪些代码行已被覆盖,哪些代码没有被覆盖。 MsTest 没有提供更多信息,但 NCover 提供了大量 HTML 报告,并且可以随时间变化趋势分析代码覆盖率。这些事情可能会有帮助。

现在来说说差异。 MsTest 覆盖率工具实际上只适用于 MsTest 单元测试。它无法轻松覆盖 IDE 中使用 NUnit(或其他测试框架)编写的测试。这是可以完成的,但需要一些时间,并且需要从命令行调用覆盖工具并手动检测程序集。同样,这是可以做到的,但不是很容易,特别是对于初学者来说。 Ncover 更加灵活,可以与大多数测试框架一起运行。另外,我发现使用自动构建服务器运行 NCover 更容易。我在 CruiseControl 中自动化 MsTest 覆盖率从来没有什么运气,但我猜 MS 让它在 Team Foundation Server 中工作。

Having used both tools, they both work pretty much the same way. You run your tests and then you view the report. Both tools provide code highlighting to show, which lines of code have coverage and which ones do not. MsTest does not provide much more in terms of information, but NCover provides lots of HTML reports and can trend code coverage over time. These sorts of things can be helpful.

Now for the differences. The MsTest coverage tools really only work with MsTest unit tests. It cannot easily cover tests written using NUnit (or other testing frameworks) from the IDE. It can be done, but takes some time and requires invoking the coverage tools from the command line and instrumenting your assemblies manually. Again, it can be done, but not very easily, especially for a beginner. NCover is more flexile and can be run with most testing frameworks. Also, I have found that it is easier to run NCover with an automated build server. I never had much luck automating MsTest coverage in CruiseControl, but I am guessing MS makes it work in Team Foundation Server.

甜扑 2024-10-06 15:48:16

只是一些可能有用的小注释:

  1. 不幸的是,NCover 的免费软件版本不能与 .Net 4.0 运行时一起使用
  2. 如果您对与 CruiseControl.Net 集成感兴趣,您可以使用 Gallio 测试运行程序来运行 MSTest测试。看
    ​​Gallio:无法运行测试,因为 MSTest 可执行文件已未找到

Just a couple of small notes that might be helpful:

  1. Unfortunately, the freeware version of NCover does not work with the .Net 4.0 runtime
  2. If you're interested in intgration with CruiseControl.Net, you can use the Gallio test runner to run the MSTest tests. See
    Gallio: Cannot run tests because the MSTest executable was not found
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文