代码之家  ›  专栏  ›  技术社区  ›  Pablo Fernandez

与Visual Studio 2008提供的测试库相比,其他测试库有什么优势?

  •  3
  • Pablo Fernandez  · 技术社区  · 15 年前

    或者从另一方面来说,是否有理由安装Nunit或任何其他库并使用它而不是Visual Studio 2008附带的库?

    7 回复  |  直到 15 年前
        1
  •  4
  •   Brian Rasmussen    15 年前

    自VS2005以来,我们一直在使用MS测试工具,我曾一度将Nunit视为替换工具,因为我们在使用MS工具时遇到了一些问题。以下是我的一些发现:

    MS测试工具专业版

    • 易于说服管理层使用MS提供的工具(当然这不是技术问题,但可能与许多公司有关)
    • 测试库、测试运行程序和代码覆盖率都与VS很好地集成在一起。
    • 团队基础设施中的中央报告和其他特征
    • 或多或少与nunit相同的功能集(我觉得nunit可能比MS测试工具好一点,但差别不大)

    MS测试工具

    • VS2005—速度很慢,VS2008好多了,但对于大型解决方案来说仍然很慢。
    • 测试主机是STA,这使得测试多线程代码更加困难。
    • vs支持有点笨拙,因为它们首先支持测试,然后在同一个接口中进行测试(因此有两个“新单元测试”命令->更多支持工作)

    最后转为Nunit对我们没有吸引力,原因有两个:

    • 代码变化不多,但通过大量的测试,仍然需要一些工作。
    • 每个开发人员席位增加的成本和复杂性:如果您用nunit交换MS测试,您也会失去测试运行程序和代码覆盖。两者都可以通过其他工具获得,如r_、testsdriven.net、ncover等,但这都增加了成本和复杂性。
        2
  •  3
  •   Jon Skeet    15 年前

    您希望没有Visual Studio 2008或只有Express版本的开发人员运行单元测试吗?这与开源项目尤其相关。如果是这样,我将使用一个开放源码单元测试框架。

        3
  •  1
  •   Gerrie Schenck    15 年前

    我认为在VS2008之前创建的大多数测试项目现在仍将使用其他库。

    对于新项目来说,这取决于个人品味,或者公司政策。

    而且,并非所有的Visual Studio版本都支持我认为的测试框架…

        4
  •  1
  •   ChrisBD    15 年前

    我刚刚开始使用Visual Studio测试项目。我没有使用第三方测试产品的经验,但我发现Visual Studio测试产品似乎非常适合大多数测试点。

    我认为这可以归结为你在这方面的经验。

    如果你已经知道如何使用尼特和/或犀牛模型,那么就和他们一起去。

    如果您对它们都没有经验或者不太在意获得经验,那么就使用Visual Studio提供的经验。

    一个有用的指针是,如果右键单击并从代码中的任何位置选择“创建单元测试”,Visual Studio One将自动为您创建测试方法存根和访问器。如果您没有严格遵循在编码之前编写测试的TDD,那么特别有用。

        5
  •  1
  •   Sam Saffron James Allen    15 年前

    一些优势:

    • (Jon's)您可以在vs 2008 Express中运行测试
    • 许多尖端的功能都建立在免费的库之上。如。 BDD
    • 一般来说 rich extensability 当涉及到OSS测试框架时。
    • 您可以调试到OSS框架的源代码中,并根据需要进行更改。
    • 可以说,一些测试框架 like xUnit 更容易学习和执行更干净的无副作用的测试模式。

    因为太棒了 testdriven.net 几乎支持所有的OSS测试框架,您可以获得与Vs2008相同的(如果不是更好的话)IDE集成。

        6
  •  1
  •   Gabriel    15 年前

    再做一些笔记…

    1)整个团队致力于将功能推向市场(实际上是他们的全职工作)。这些人最终拥有了编写文档、集成其他微软产品的资源、讨论来自通用测试社区的进展以及这些如何进入微软测试产品的资源,以及一个全面、功能齐全的致力于此工作的产品单元。当你使用MSTEST时,你会充分受益于这些人的努力和微软的投资。

    2)网络测试和压力测试。还有一个专门的团队(独立于MSTEST团队)负责Web测试和压力测试。这些都是微软对测试堆栈的巨大补充。这些提供了模拟在线用户、使用复杂的带宽操作、检查服务器性能等等的方法。网络和压力测试的东西是一个很大的原因,真正给MS测试堆栈一个硬的外观。

    3)功能测试……微软正在添加完整的用户界面自动测试支持,这将真正完善他们的产品。在MS测试工具的早期版本中,它是缺失的,但必须考虑到一套完全集成的UI测试工具将真正增加对MS测试技术的总体投资。

    4)如上所述-冲击试验。从开发人员的角度来看,这很酷。如前所述-工具选择正确的单元测试,通过单元测试的代码覆盖率。所以开发人员编辑和现有类等…该工具专门指向影响签入的测试。顺便说一句,这是你从我在1中提到的研究中获得的一个很好的例子。

    …顺便说一句-完全公开-我直接在VST上工作-并且完全认为它是我家庭的一部分-所以是的-我在偏袒方面完全妥协了。

    对于非MS测试工具…

    a)您不能忽视其他公司或整个开源社区的努力。实际上,如果你一方面考虑到整个开源社区,以及公司与几个微软产品团队的所有其他努力,微软仍然会失败。然而,MS的工作大多是协调的(尽管不总是),并且至少有集成的软点(尽管也有,不总是)。

    b)更快地从其他供应商/开源社区转向。微软正在改进——但没有——其他社区和供应商在将产品推向市场方面已经超越了微软。这与测试工具创新没有什么不同。

    c)*****其他测试工具可以很好地利用非MS技术堆栈。MS工具在某些情况下是“正常的”,而在另一些情况下则完全没有发挥作用。很多时候,微软工具的大赢家并不存在于其他技术(读非微软)的技术栈中……其他供应商和开源社区(显然)确实提供了更令人信服的支持。

    最后。。。我建议这样做:如果你是微软的一员,并且在Visual Studio上有一笔投资,特别是在与微软的合作中,因此在购买微软工具方面有大量的访问和投资……实际上,使用某种形式的MS开发和测试工具是一件很简单的事情。我甚至没有讨论测试工具集成和其他VST的使用——圣牛。

    但是-如果您使用的是其他堆栈,那么就不要对MS堆栈/MS提供的开发工具进行端到端投资…如果你在一家商店里操作,其他操作系统和类似的操作系统对于桌面或服务器的安装等都是大买卖…那么,也许MS工具集的一些次要元素可能值得检查——但是显然,从MS测试工具的方向开始会更加困难/昂贵。

    希望这有帮助。

        7
  •  0
  •   semiprocappa    15 年前

    nunit允许您按定义的顺序运行测试,而Visual Studio测试框架则同时运行测试。