Visual Studio TDD设置

Cri*_*scu 12 c# tdd visual-studio-2010

我是TDD的新开发者,愿意尝试这种开发方法.

我目前的设置是Visual Studio 2010的+ ReSharper的(运行单元测试非常方便 - 建立一个单元测试会话和有运行和调试测试按钮).

尽管如此,我觉得可能有更多方法来加速TDD(例如:保存测试文件时自动运行测试).

因此,使用Visual Studio的TDD专家 - 您能否分享有关如何提高TDD流程效率的任何提示?

vcs*_*nes 8

工具

我通常将键盘快捷键绑定到Context Run.您可以通过点击"工具","选项"在Visual Studio的选项中执行此操作,然后在"环境 - >键盘"下找到"ReSharper.ReSharper_ReSharper_UnitTest_RunContext".我相信Resharper 6会给它分配一个键盘快捷键,Ctrl+ T, R. 我通常总是指定它Alt+ ;.

这将在上下文中运行单元测试.因此,如果您的光标位于测试内部,您刚刚完成写入; 该测试运行.如果光标位于测试类/测试夹具内; 跑了.

您还可以制作一些R#模板.我通常会创建一个名为的模板Test,如下所示:

[Test] //NUnit Change attribute to [TestMethod] if MSTest.
public void $NAME$()
{
    $END$
}
Run Code Online (Sandbox Code Playgroud)

我更喜欢R#模板而非Visual Studio代码片段,因为您可以制作"解决方案"级别模板,该模板存储在解决方案文件旁边的XML文件中.所以当你检查它时; 您的所有同事也可以访问模板; 甚至是你从另一个工作站.

这样你就可以在没有所有样板的情况下继续添加测试.您甚至可以为整个灯具制作文件模板.

让它流畅的真正技巧是学习所有键盘快捷键.一旦你了解并掌握它们; 你的手开始这样做,甚至没有思考.添加/修改测试,您将开始自动按上下文运行命令(您可能使用的任何一个),甚至不用考虑.

持续集成

另一个不相关的工具; 但每个TDDer应该熟悉的功能强大的是持续集成(CI)服务器.这将允许您在签入源代码控制时运行测试.最终,足够大的项目将获得1000个测试套件.一直运行它们自己变得不切实际.CIC服务器(如TeamCity)将在您签入时在服务器上运行测试.然后它将报告完成后所有损坏的内容; 所以你可以在运行其他测试时继续工作.你可能没有想过你会破坏但是没有.还有一些其他好的免费提供; 像哈德森.编辑:正如彼得在评论中指出的那样; CruiseControl.NET是一个开源的CI服务器,已经存在了一段时间; 绝对值得一试.

我的典型指南是运行我认为相关的测试.我使用具有[Category]属性的NUnit .我运行我认为受影响的所有类别; 并让CI服务器负责其余部分.

编码纪律

测试也是代码.他们需要重构; 并保持.我见过很多人放弃测试,因为他们最后进行了意大利面条测试.将您的单元测试集中在一个小型的单元上.当测试很脆弱时,它开始减慢你和你的团队的速度.一般来说,没有太多的细节; 遵循SOLID原则有助于测试.

  • 在谈到CI时,值得一提的是CruiseControl.Net(http://sourceforge.net/projects/ccnet/). (2认同)