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

时间:2010-11-01 02:42:17

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

我正在使用VS2010 + C#+ .Net 4.0。我想为单元测试做代码覆盖。调查后我有两个选择,我的问题是,我想知道这两个工具/选择的利弊。

  1. 使用非VS内置工具,如ncover;
  2. 使用VSTS内置工具,例如
  3. 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

2 个答案:

答案 0 :(得分:3)

使用这两种工具后,它们的工作方式大致相同。您运行测试然后查看报告。这两个工具都提供代码突出显示,哪些代码行有覆盖,哪些代码没有。 MsTest在信息方面没有提供更多信息,但NCover提供了大量的HTML报告,并可以随着时间推移趋势代码覆盖。这些事情可能会有所帮助。

现在是差异。 MsTest覆盖工具实际上只适用于MsTest单元测试。它不能轻易涵盖从IDE使用NUnit(或其他测试框架)编写的测试。它可以完成,但需要一些时间,需要从命令行调用coverage工具并手动检测程序集。同样,它可以完成,但不是很容易,特别是对于初学者。 NCover更灵活,可以与大多数测试框架一起运行。此外,我发现使用自动构建服务器运行NCover更容易。我在CruiseControl中自动化MsTest覆盖范围从未如此幸运,但我猜MS使其在Team Foundation Server中工作。

答案 1 :(得分:1)

只是一些可能有用的小笔记:

  1. 不幸的是,NCover的免费软件版本不适用于.Net 4.0运行时
  2. 如果您对使用CruiseControl.Net进行整合感兴趣,可以使用Gallio测试运行器来运行MSTest测试。看到 Gallio: Cannot run tests because the MSTest executable was not found