我是TDD的新手,正在研究我的Visual Studio 2010解决方案的单元测试选项。此解决方案是一个MVC3 Web应用程序,我尝试将DDD与IoC,存储库和工作单元格一起使用。它还使用EF4& EF4 POCO模板。 (我试图从Microsoft N-layer App模拟大部分内容,也从其他几个博客那里借用设计模式。)
我一直在搜索和阅读这个问题几个小时,而且我发现在任何地方我都发现了相互矛盾的信息。其中很大一部分原因是由于旧的结果出现,以及Visual Studio 2010的不断发展的选项。
我知道有几个选项,但同样,我很难从较新的选项中辨别出过时的选项,并且人们使用的引用中存在一些含糊之处。即使popular discussion这里也有一些陈旧/含糊/冲突的信息。
例如:
MSTest,Visual Studio Unit Testing Framework和Microsoft.VisualStudio.TestTools.UnitTesting
之间是否存在差异?如果是这样,什么?看来这些是不同的,但在我见过的一些讨论中却被错误地引用了。
由于NUnit的作者也创作了xUnit,这是否意味着xUnit取代了NUnit,因此不推荐使用NUnit?似乎有些人,甚至今天,更喜欢NUnit。但是如果NUnit被弃用了,为什么今天会开始使用NUnit而不是xUnit呢?如果NUnit没有被弃用,这是否意味着xUnit没有像最初的预期那样起飞?为什么作者会继续支持两个看似冗余的工具?
其中哪些集成到VS2010中而不必单独执行命令行来测试,或者必须购买TestDriven.Net等工具? (但我确实有ReSharper,如果这支持其中任何一个。)
最近是否有任何显着的变化会使这些无效的旧讨论无效?
除了我上面提到的那些之外,还有其他我应该考虑过的吗?
我不一定要寻找深入的比较(尽管如果您愿意,我们非常欢迎您提供一个),但更多的是当前正在使用的工具的最新共识今天用于新的VS2010开发。
从表面上看,“Visual Studio单元测试框架”似乎可以很好地集成到VS2010(Pro)中,并且看起来很容易快速启动和运行,而不是其他一些,甚至如果它有点膨胀。但是因为我是新手,所以我不想在未来3个月内进入它,然后意识到我已经把自己画成一个角落,因为它似乎更容易拿起。
我也知道这个问题可能被一些人认为是一个“坏”的问题,因为它具有开放和广泛的性质,但虽然这些问题是不同的,但我觉得它们都是相关的,都源于我的一般困惑在VS2010中我发现有关单元测试的模糊和冲突点。
提前致谢。
编辑:这是对上面链接的近三年前popular discussion的更新讨论。这个讨论有一些好处,但很多事情(可能)在三年内发生了变化,我更喜欢这个主题的更新评价。
答案 0 :(得分:7)
4和5事情不断变化,难以形成最终答案。
总结:NUnit更容易学习(需要一天或更短的时间)和大部分文献w.r.t.如果您知道,TDD将更容易下载。我个人从未有过移动的理由(例如,NUnit不会这样做,xUnit会这样做,如果没有这个,我就无法生存)。除非你对MS-CI(以及“免费”Coverage和TestImpact)很重要,否则我会说从NUnit开始,然后继续努力。没有白银试运行员。
该工具不保证成功,而是您使用这些工具的方式。选择一个,开始并适应。
HTH
答案 1 :(得分:1)
这不是一个改变生活的决定。我在一些项目中使用MSTest,在其他项目中使用NUnit。我从未尝试过xUnit,但我确信它也没关系。
对于我自己,我更喜欢MSTest,只需内置模板和键绑定的b / c,即可快速运行和设置测试。也就是说,如果开发团队中的任何人都不能使用VS,那就没有乐趣了。
当使用NUnit时,我不想为Resharper支付费用(对不起,我已经看到了它的实际应用,但根本没有看到它的亮点,我猜)。我改用Visual NUnit。 http://visualstudiogallery.msdn.microsoft.com/c8164c71-0836-4471-80ce-633383031099它是免费的,与Visual Studio的UI集成(虽然它不是一个漂亮的UI,但它比TestDriven.NET更好)。
答案 2 :(得分:1)
ReSharper可以运行用xUnit,NUnit和MSTest编写的测试。
xUnit需要一个(免费)插件,用于从xUnitContrib页面链接到的ReSharper:http://xunitcontrib.codeplex.com/
NUnit和MSTest都可以开箱即用。
在ReSharper中,您可以看到ReSharper下安装了哪些单元测试框架 - >选项 - >单元测试(位于左侧窗格中工具的底部)
答案 3 :(得分:0)
我可以回答#3:TestDriven很好地与VS2010集成。 您可以获得运行测试的上下文菜单选项,甚至可以将一些命令挂钩到快捷键,这样您就可以快速运行所有测试。