据我所知,TestDriven.net专注于直接访问Visual Studio中的运行测试。然而,Resharper作为一个更通用的工具,同样也提供了这种功能。如果使用Resharper,那么使用TestDriven.net有什么意义?为什么在使用Resharper时使用TestDriven.net?
回答
如果你有resharper,那么不,你可能不需要它。如果你不这样做,它是一个很棒的免费工具。
除非你是学生,试用或开源开发者,否则它不是免费的。专业执照是$ 170。 http://www.testdriven.net/download.aspx – Matt 2011-02-17 20:22:17
我安装了Resharper和TestDriven.NET。 Resharper进行编辑/重构,TestDriven进行单元测试。他们互不相让。 – 2012-10-05 11:17:50
我不喜欢Resharper的几个原因,但我想运行和调试VS的测试,这就是为什么我喜欢TestDriven.net。另外它是免费的。
使用TestDriven.NET,您可以使用“运行测试”执行“任何”方法。我使用它执行一些静态方法来测试一些我不确定的东西(比如DateTime格式等),并且一旦解决了就不需要进行单元测试。
如果ReSharper也有,我还没有找到它,或者被TestDriven.NET太盲目了;-) 据我所知,它只能执行[Test]等注释函数。
我发现TestDriven.net更适合运行单元测试的ReSharper。 我想这可能只是因为我使用了很多TestDriven.net,并且只使用了ReSharper几个星期。
ReSharper似乎是更多的步骤来运行一个测试,看看它的结果,从我记得ReSharper显示一个复杂的用户界面,而不仅仅是从一个单一的测试提供简单的文本输出。
使用ReSharper更多,我会说它是很好的运行大量的单元测试,并显示多个1测试失败时的综合结果。我仍然认为TestDriven.net非常适合运行单个单元测试,或者当您经常运行测试时,只有1或2个测试失败。
对于我来说,TestDriven.NET的优势归结为三个要点:
- 没有图形测试运行。我真的不喜欢用红色和绿色灯泡冒出来的窗户。 TestDriven.NET只是在输出控制台中报告“n通过,m失败,x跳过”。这就是你需要看到的。
- 任何Console.Write()调用都显示在输出控制台上。这对于快速高峰和进化单元测试的好方法来说非常棒。我经常从写入控制台开始,然后将输出复制并粘贴回测试中,并根据复制的以前输出做出输出断言。如果输出更改,则测试失败。
- 正如Christian所言,能够运行任何方法,不仅仅是测试方法,是一款梦幻般的生产力工具。这是在C#中使用REPL的下一个最好的事情(是的,如果你愿意,可以告诉我关于Mono C#REPL的所有信息:)。
TestDriven.net有一个功能,Resharper没有:代码覆盖率报告,这是非常有用的。
- 1. 为什么我不能在ReSharper中使用[SuppressMessage(...)]中的常量?
- 2. 为什么Resharper认为这些枚举从未被使用?
- 3. 使用PInvoke时,为什么使用__stdcall?
- 4. 为什么undefined变量在使用函数()时使用($ var){}?
- 5. 在WinForms中使用ErrorProvider时CPU使用率高,为什么?
- 6. 为什么我们在使用return时使用pthread_exit()?
- 7. 为什么在使用ES6和ReactJS时需要使用绑定?
- 8. 为什么我们在使用iframe时要使用母版页?
- 9. 为什么在使用boost :: split时必须使用boost :: is_any_of?
- 10. 为什么在使用let(ES6)时不需要使用闭包?
- 11. 如何在使用TestDriven.Net时看到Debug.WriteLine语句?
- 12. 什么时候和为什么我会在C++中使用abs
- 13. 什么时候应该使用AWS,什么时候不使用
- 14. intn_t什么时候使用它,什么时候不使用
- 15. 什么时候使用__proto__和什么时候使用原型
- 16. 什么时候使用Ruby和什么时候使用PHP
- 17. 为什么resharper建议在未更改的字段中使用readonly?
- 18. 为什么NUnit挂在命令行,但不是在TestDriven.NET下?
- 19. 为什么在项目中使用'assert'? (为什么使用它这么多次)
- 20. 何时/为什么在使用jQuery时用“$”前缀变量?
- 21. 使用getAttribute时出错,为什么?
- 22. Codeigniter:Userdata - 何时/为什么/如何使用
- 23. 何时/为什么要使用QUOTENAME?
- 24. 为什么比使用临时表
- 25. 为什么使用URLSessionStreamTask写入超时?
- 26. 为什么我需要使用超时?
- 27. 为什么以及何时使用process.nextTick?
- 28. 为什么试图使用mediaplayer时java.lang.ClassNotFoundException?
- 29. 为什么以及何时使用LINQ?
- 30. 为什么如果你没有声明使用var,resharper会默认为警告?
resharper是否提供简单的代码覆盖测试? – 2011-03-07 10:56:58
靠自己,没有。但它与JetCrains的姊妹产品dotCover很好地集成在一起。 – 2011-03-07 16:46:34