什么样的单元测试框架能满足我的需求



这就是我在高水平上寻找的所有内容:

  1. 在visual studio 2008中运行单元测试的能力
  2. 与某些代码覆盖工具的兼容性
  3. 具有行测试功能的单元测试框架,如MBUnit的RowTestAttribute
  4. 与Team City的整合能力

我以为我在xUnit.net 1.8、resharper 6.0和dotCover 1.1.1中发现了这个问题。然而,在花了将近一天的时间摆弄这些东西之后,我发现了这个设置的这些主要问题:

  • Resharper不完全支持理论测试(行测试)-更多信息
  • dotCover基本上不工作与xUnit

我成功地使用MSTest与ReSharper做我需要的一切,但行测试,但似乎生活可以更好与一些更先进的测试框架。

我已经开始看加里奥了,但我希望有人能帮我节省一些时间,在我浪费更多的时间探索之前推荐一个成功的组合。

你成功地使用了什么组合?

我建议您使用NUnit:

  • 您可以使用TestDriven.NETReSharper与Visual Studio完全集成
  • PartCover, Sonar, NCover 1.5.8 free作为代码覆盖工具
  • TestCase属性传递不同的参数集(ReSharper完全支持此属性)
  • Team City支持内置在
TestCase属性 的一个示例
 [Test]
 [TestCase(1)]
 [TestCase(2)]
 [TestCase(3)]
 public void TestMe(int param)
 {
    Assert.That(param > 0);
 }
  1. 集成IDE:开箱即用和免费=> MSTest。如果您愿意下载和使用,有大量的测试运行程序。unit是最老的。如果你愿意支付,你有resharper, test- drive.net和其他插件。Resharper有自己捆绑的测试运行器——这就是为什么你会看到这些琐碎的问题。现在,如果您想要运行和调试,那么您的选项将进一步减少。运行就像将程序设置为要调试的单元测试运行程序exe一样简单。底线:集成除MSTest以外的任何东西,必须付费/下载。
  2. 与代码覆盖的兼容性:再次开箱即用和免费=> MSTest。付费:NCover将集成任何exe…所以这并不是一个限制(但在我看来有点太贵了)。现在也出现了其他的——随着Jetbrains推出他们自己的变体,我猜想他们自己的产品之间的兼容性将是一个给定的。
  3. RowTests: NUnit有这个。虽然我认为它是从xUnit或MBUnit借来的,但我忘了。MSTest支持这个可下载的扩展。
  4. 与Team City集成:查看他们的页面:似乎只与NUnit和MSTest一起工作。我已经亲自用NUnit检查过了。

我强烈推荐xUnit.net

请阅读为什么它是构建的,以及如何比较xUnit.net与其他。net测试框架。

最新更新