【发布时间】:2009-05-29 10:00:39
【问题描述】:
或者以另一种方式,是否有任何理由安装 NUnit 或任何其他库并使用它而不是 Visual Studio 2008 附带的库?
【问题讨论】:
标签: visual-studio visual-studio-2008 unit-testing testing
或者以另一种方式,是否有任何理由安装 NUnit 或任何其他库并使用它而不是 Visual Studio 2008 附带的库?
【问题讨论】:
标签: visual-studio visual-studio-2008 unit-testing testing
自 VS2005 以来,我们一直在使用 MS 测试工具,但由于我们在使用 MS 工具时遇到的一些问题,我曾一度将 NUnit 视为替代品。以下是我的一些发现:
MS 测试工具专家
MS 测试工具的缺点
最终切换到 NUnit 对我们没有吸引力,原因如下:
【讨论】:
您是否希望没有 Visual Studio 2008 或只有 Express 版本的开发人员运行单元测试?这与开源项目特别相关。如果是这样,我会选择其中一种开源单元测试框架。
【讨论】:
我认为在 VS2008 之前创建的大多数测试项目现在仍然会使用其他库。
对于较新的项目,我猜这取决于个人品味或公司政策。
另外,并不是所有的 Visual Studio 版本都支持我认为的测试框架...
【讨论】:
我刚刚开始使用 Visual Studio 测试项目。我没有使用第三方测试产品的经验,但我发现 Visual Studio 似乎完全可以满足大多数要求。
我认为这可以归结为您的经验。
如果您已经知道如何使用 NUnit 和/或 Rhino 模拟,请继续使用它们。
如果您没有任何经验,或者不太想获得经验,那么请使用 Visual Studio 提供的。
一个有用的提示是,如果您在代码中的任意位置右键单击并选择“创建单元测试”,Visual Studio 将自动为您创建测试方法存根和访问器。如果您在编码之前没有遵循严格的 TDD 编写测试,则特别有用。
【讨论】:
一些优点:
鉴于很棒的 testdriven.net 支持几乎所有的 OSS 测试框架,您可以获得与 VS 2008 相同(如果不是更好)的 IDE 集成。
【讨论】:
几个笔记 RE MSTest...
1) 有一整支团队致力于将功能推向市场(这实际上是他们的全职工作)。这些人最终获得了用于编写文档、将点集成到其他 Microsoft 产品、讨论一般测试社区的进步以及这些如何进入 Microsoft 测试产品以及总体上致力于这项工作的功能齐全的产品单元的资源。当您选择 MSTest 时,您将充分受益于这些人的努力和 Ms 投资的资金。
2) Web 测试和压力测试。还有一个专门的小组(独立于 MSTest 小组)从事 Web 测试和压力测试。这些是 Microsoft 对测试堆栈的巨大补充。这些提供了模拟在线用户、使用复杂的带宽操作、检查服务器性能等等的方法。 Web 和压力测试是真正让 MS 测试堆栈认真了解的一个重要原因。
3) 功能测试 ... Ms 正在添加完整的 UI 自动化测试支持,这将真正完善他们的产品。它在早期版本的 MS 测试工具中是缺失的,但必须考虑到一套完全集成的 UI 测试工具将真正增加对 MS 测试技术的整体投资。
4) 如上所述 - 冲击测试。从开发人员的角度来看 - 这太酷了。如前所述 - 工具选择在单元测试的代码覆盖率上通过的正确单元测试。因此,开发人员编辑和现有类等......并且该工具专门指向影响签入的测试。顺便说一句 - 这是你从我在 #1 中提到的研究中获得的一个很好的例子。
....顺便说一句 - 完全披露 - 我直接在 VSTS 上工作 - 并且完全认为它是我家庭的一部分 - 所以是的 - 我在偏袒方面完全妥协了。
至于非 MS 测试工具...
A) 您不能忽视其他公司或整个开源社区的努力。如果您一方面考虑整个开源社区和所有其他公司的努力与几个 Microsoft 产品团队相比,MS 仍然会失败。然而,MS 的努力大多是协调的(尽管并非总是如此),并且确实倾向于至少具有软集成点(尽管同样,并非总是如此)。
B) 其他供应商/开源社区的周转速度更快。女士正在改进——但——没有——其他社区和供应商在将产品推向市场方面确实超过了 MS。这与测试工具创新没有什么不同。
C) ***** 其他测试工具将在非 ms 技术堆栈方面做得很好。在某些情况下,女士工具会“正常”——而在其他情况下,则完全错过了这条船。很多时候,其他技术(阅读非 MS)技术堆栈并没有从 MS 工具中获得大笔胜利 - ...其他供应商和开源社区(显然)确实提供了更具吸引力的支持。
最后...我建议:如果您在 MS 堆栈上并且对 Visual Studio 进行了投资(尤其是在 MSDN 上),因此在购买 MS 工具方面拥有大量访问权限和投资。 ... 真的,使用某种形式的 MS 开发和测试工具是不费吹灰之力的。我什至没有讨论 VSTS 其余部分的测试工具集成和使用 - 圣牛。
但是 - 如果您使用其他堆栈,请不要对 MS 堆栈/MS 提供的开发人员工具进行端到端投资...如果您在其他操作系统等的商店中运营桌面或服务器安装等的大笔交易......然后也许 MS 工具集的次要元素可能值得一试 - 但显然从 MS 测试工具方向开始会更困难/更昂贵。
希望这会有所帮助。
【讨论】:
NUnit 允许您按定义的顺序运行测试,而 Visual Studio 测试框架同时运行测试。
【讨论】: