我们的团队进行了数百次集成测试,它们击中数据库并验证结果。我为所有集成测试提供了两个基类,一个用于仅检索测试,另一个用于创建/更新/删除测试。只能检索的基类在TestFixtureSetup期间重新生成数据库,因此它仅对每个测试类执行一次。 CUD基类在每次测试之前重新生成数据库。每个存储库类都有自己相应的测试类。如你所想,这整件事情需要相当长的一段时间(接近7-8分钟才能运行并快速增长)。将它作为CI(CruiseControl.Net)的一部分运行并不成问题,但在本地运行需要很长时间,并且在提交代码之前确实禁止运行它们。集成测试最佳实践
我的问题是有没有最佳实践来帮助加快这些类型的集成测试的执行?
因为我们使用了sqlite中不支持的某些特定于数据库的功能(计算列等),所以我无法在内存中执行它们(la sqlite)。
此外,整个团队必须能够执行它们,因此,在SQL Server Express的本地实例上运行它们或者可能会出错,除非连接字符串对于这些实例而言都是相同的。
你是如何在你的店里完成这件事的?
谢谢!
+1这几乎是我们在工作中所做的。在我们的CIS中,单元测试每天进行一次签入和集成测试。 – mezoid 2009-08-25 14:53:17
我在哪里工作,我们在每个构建上运行集成测试。您运行集成测试的频率越高越好。 – 2009-08-25 14:58:34
@ Ken_Liu - 当然。通常情况下,将CI服务器上的可用cpu周期与每时每刻的提交数量进行平衡。这对每个开发团队/环境都会有所不同。 – grenade 2009-08-25 15:01:39