【问题标题】:What's the difference between the .NET Unit Testing framework out there?.NET 单元测试框架之间有什么区别?
【发布时间】:2009-03-02 02:18:59
【问题描述】:

关于是什么让一个人比另一个人更好,我听到了许多不同的意见。但是任何人都可以提供关于为什么我应该选择一个单元测试框架而不是另一个的技术解释。例如,我使用 Visual Studio Team System。为什么我会选择开源测试框架(NUnit、xUnit、MbUnit 等)而不是 Visual Studio 的内置单元测试功能?有关系吗?

编辑:明确地说,我不是在寻找关于“哪个单元测试框架最好”的意见......我正在寻找关于它们有何不同的技术细节。

【问题讨论】:

    标签: .net unit-testing


    【解决方案1】:

    http://www.codeplex.com/xunit/Wiki/View.aspx?title=Comparisonshttp://www.codeplex.com/xunit/Wiki/View.aspx?title=Comparisons有一个 NUnit、MbUnit、MSTest 和 xUnit.net 之间的属性和断言差异的比较

    至于 MSTest 与 OpenSource 解决方案,众所周知,开源包,特别是 MBUnit 和 xUnit.net 是围绕单元测试进行创新的地方。

    也就是说,既然 Peli de Halleux 正在为 MS 工作并产生像 Pex 这样的创新,事情可能会改变。

    【讨论】:

    • 感谢您的链接。很有帮助!
    【解决方案2】:

    我只使用过 NUnit 和 Microsoft 的相同版本。在我看来,它们的相似之处多于不同之处。但是,根据您的项目设置,可能存在许多相关的财务考虑。

    Microsoft 的测试框架在其较便宜/免费的 SKU 中不可用,但是一旦您支付了整个软件包的费用(我知道这并不便宜),您就可以在一个单一的项目中获得单元测试、测试运行程序和代码覆盖打包,非常方便。

    如果你切换到 NUnit,你要么不得不放弃 VS 集成,要么在 TestDriven.NET 或 Resharper 上获得一个测试运行器。当我查看这些时,它们都需要用于商业用途的许可证。 IE。每个开发人员的成本增加。此外,这些工具没有代码覆盖率,因此您必须获得类似 NCover 的东西。同样,当我检查时,这带有商业用途的许可证。

    诚然,我已经有一段时间没有对此进行研究了,因此许可可能已经改变,但每位开发人员的额外成本是我们选择使用 Microsoft 解决方案的部分原因。可能是 VS Express 加上其他工具比 VS Team Foundation 便宜,但因为无论如何我们都必须使用 VS TF,这对我们没有什么好处。

    如果您在做开源/非商业项目,我相信您可以获得免费版本。

    【讨论】:

    • 其实我正在使用 Resharper,它是一个很好的工具,但它并没有改变它增加了成本和设置复杂性的事实。
    • 只是一个更新,Jetbrains(制造 ReSharper)现在提供自己的代码覆盖应用程序(作为一个单独的应用程序)jetbrains.com/dotcover
    【解决方案3】:

    我使用过一些 .NET 的单元测试框架,但没有发现其中任何一个与我的目的有很大不同。

    最初反对使用 Visual Studio Team System 中包含的单元测试的一个论点是,使用较低版本的 Visual Studio 的人无法运行您的测试。现在这不是问题,因为我相信 VS Pro 现在包括单元测试。我喜欢 Visual Studio 可以自动为您生成大量测试工具。

    只要您实际编写单元测试,我认为您选择哪种工具并不重要。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-11-27
      • 2019-11-06
      • 2010-12-25
      • 2011-02-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多