在.NET 2.0+中使用后构建事件执行MS Test单元测试

11
我正在尝试在.NET 3.5中设置一个后构建事件,以运行使用MS测试的一套单元测试。我发现这篇文章展示了如何使用MbUnit调用.bat文件,但我想知道是否有人使用MS Test做过这样的事情?
如果有,我会对.bat文件的示例感兴趣。
3个回答

10

我们之前一直使用 NUnit 进行单元测试,后来决定改用 MSTest。在转换过程中,我们只需将以下内容添加到适用的 MSTest 项目的“后生成事件”中:

CD $(TargetDir)
"$(DevEnvDir)MSTEST.exe" /testcontainer:$(TargetFileName)

完整的MSTest命令行选项可以在适用的MSDN网站找到。


3

个人建议不要将单元测试作为编译过程的一部分。相反,考虑使用ReSharper(+适当的单元测试运行器或现在他们如何称呼)或其他GUI运行器。


2
我同意,但我的同事开发人员并没有完全做到这一点...所以我正在尝试在构建后强制执行它... - Toran Billups

2

与其在每次编译时都在后期构建事件中执行,我会考虑设置一个类似于CruiseControl.Net的持续集成服务器。它将为您提供紧密的反馈循环,但不会阻止您在每次构建应用程序时运行测试。

如果您想要运行当前正在开发的测试集,Anton建议使用ReSharper将非常有效。您可以创建要在需要时执行的测试子集,并且如果需要,它会为您编译。当您在那里获取演示文稿时,如果您还没有许可证,请获取Team City。这是另一个具有一定潜力的CI服务器。

如果您想要使用此方法来控制构建质量,您可能会发现随着测试数量的增加,您不再希望等待每次按F5测试更改时运行1000个测试。


好的建议 - 我正在使用VS2008,可以快速运行我的测试(正如你提到的R#)。我们去年底购买了TFS ... 但由于某种原因,负责将其启动的团队需要一些时间:( - Toran Billups
目前,您可以在本地计算机上设置CC.Net或其他CI服务器,而不是使用Team Build,或者将其运行在临时服务器(例如未使用的桌面电脑)上。我们曾经为了让“企业”团队设置“企业”解决方案而苦苦挣扎,最终只能自己动手了。 - Mark
将其在CI服务器上运行而不是作为编译的一部分的缺点是开发人员不会收到故障警报。开发人员通常会无意中推送导致CI服务器失败的更改,这会导致很多繁琐和羞耻 :) - pmont

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接