【问题标题】:Favorite .NET Unit Testing framework [closed]最喜欢的 .NET 单元测试框架 [关闭]
【发布时间】:2008-09-24 15:00:01
【问题描述】:

我已经使用 NUnit 几年了。我已经尝试了一段时间的 MBUnit 以及 Zenebug 和 XUnit,但我不断回到 NUnit。

您最喜欢/最常用的单元测试框架是什么?您能解释一下为什么要使用它吗?

【问题讨论】:

  • 看看这个(德国)民意调查:link

标签: unit-testing nunit automated-tests


【解决方案1】:

为胜利而战!它简单易行。没有混乱,没有大惊小怪。

【讨论】:

    【解决方案2】:

    xUnit.net,但我几乎没有偏见。 :)

    我为什么使用它:http://www.codeplex.com/xunit/Wiki/View.aspx?title=WhyDidWeBuildXunit

    【讨论】:

      【解决方案3】:

      MbUnit

      我喜欢它处理报告的方式,我期待着我听说的一些即将推出的功能,例如与 JsUnit 的集成。

      【讨论】:

        【解决方案4】:

        我已经使用 nUnit 多年,但是当我们迁移到 VS2008 和 TFS 2008(使用 TeamBuild)时,我们决定尝试 MSTest。没有什么大的抱怨……我们真的很喜欢它与 IDE 以及 CI 构建服务器的集成程度。

        我们正在尝试的一个看起来很有潜力的新东西是来自 Microsoft Research 的另一个附加组件,名为 Pex(需要 VS2008)。正如他们所说:“Pex 通过基于动态符号执行的自动探索性测试,从手写参数化单元测试生成单元测试。”我的说法是:这个东西对你的单元测试和目标代码以及codegen的单元测试进行静态分析,以实现超高的代码覆盖率(如果你手动这样做通常是不切实际的)。

        【讨论】:

          【解决方案5】:

          Gallio 看起来一旦它变得更加稳定(目前是 alpha 版)将会很棒。

          它不仅是一个测试框架,还是一个测试自动化平台,因此它可以与许多现有的测试框架(MbUnit、NUnit、xUnit.net)一起使用,而且是完全可扩展的,并具有许多内置的附加功能,例如多种格式的报告生成和代码分析工具。

          我也听说可以

          • 输出图像流,例如 WatiN 测试失败可以作为屏幕截图输出,这样您就可以看到测试失败时浏览器处于什么状态。
          • 按命名空间过滤,因此您可以在运行之前轻松取消选中整个命名空间的测试

          编辑:它现在确实超出了 alpha 版本。我们已经在我们的公司尝试过,我们真的很讨厌它。使用起来很糟糕,而且速度很慢。真可惜。

          【讨论】:

          • +1 但它不再是 Alpha 版了
          【解决方案6】:

          我使用 Nunit 已经有一段时间了,但我碰巧更喜欢嵌入 VS 的东西。所以,我现在正在使用 MSUnit。只是希望在 VS 中安装较少的插件。

          【讨论】:

            【解决方案7】:

            NUnit。我们可以在 CC 上使用它。

            【讨论】:

              【解决方案8】:

              我喜欢 xUnit,因为它使用构造函数和 Dispose 方法的方式,而不必将属性应用到其他方法进行初始化等等。

              【讨论】:

                【解决方案9】:

                MbUnit 具有与 NUnit 兼容的语法,但具有更多功能(尤其是数据驱动测试)。

                【讨论】:

                • 你能详细说明一下 - 你最喜欢什么功能
                【解决方案10】:

                Resharper 中对 NUnit 测试的支持非常好,并且为我离开 NUnit 设置了很高的标准。我可以直接从 Visual Studio 运行解决方案中的所有测试,也可以深入研究并专注于特定测试。签入我的代码后,我的持续集成构建运行相同的测试。这让我对自己的开发过程充满信心。

                【讨论】:

                  【解决方案11】:

                  MSTest

                  http://en.wikipedia.org/wiki/MSTest

                  我不知道它是不是我最喜欢的(没有真正尝试过很多其他的),但它很方便,因为它内置在 Visual Studio 中。

                  【讨论】:

                    【解决方案12】:

                    我以前使用 NUnit,但现在我更喜欢 Visual Studio 2008 附带的框架,因为它具有更紧密的集成并且更易于设置以测试私有方法。

                    我们在保持 NUnit 版本与团队其他成员同步方面也遇到了问题。这是一个小麻烦(去升级,或修复项目引用),但它随着开关而消失了。

                    【讨论】:

                    • 我会尽量不直接测试私有方法。内部通常不是您在测试时所关心的。我采用黑盒方法:一些输入给了我一些应该是正确的输出。
                    【解决方案13】:
                    1. xUnit - 减少仪式,支持数据驱动测试和其他扩展

                    【讨论】:

                      【解决方案14】:

                      我已经使用 NUnit 大约 4 年了,肯定会推荐使用它。 Reshaper - JetBrains 的 VisualStudio 插件包括一个 UnitTestRunner,它与 VisualStudio 完美集成,让您可以直接从 IDE 运行/调试测试。 Resharper、NUnit 和 RhinoMocks 是我首选的单元测试工具套件。

                      【讨论】:

                        【解决方案15】:

                        我使用过 NUnit 和 MS Test。我喜欢 MS Test 与 IDE 的集成以及代码覆盖率的额外好处。但由于性能原因以及流畅断言之类的原因,我更喜欢使用 NUnit 而不是 MS 测试。

                        您可以使用一个名为 Should 的库来编写与框架无关的断言。它还具有非常好的流畅语法,如果您喜欢流畅的界面,可以使用它。我有一篇与此相关的博客文章。

                        http://nileshgule.blogspot.com/2010/11/use-should-assertion-library-to-write.html

                        如果我们对断言使用像应该这样的东西,那么两个版本的测试几乎是一样的,我认为这两个框架之间没有太大区别。

                        我在我的blog 之一中对 NUnit 和 MSTest 单元测试框架进行了比较。

                        【讨论】:

                          猜你喜欢
                          • 1970-01-01
                          • 2011-05-22
                          • 1970-01-01
                          • 2011-02-14
                          • 1970-01-01
                          • 1970-01-01
                          • 1970-01-01
                          • 2011-01-16
                          • 1970-01-01
                          相关资源
                          最近更新 更多