我们的团队有数百个集成测试,可以访问数据库并验证结果.我有两个基类用于所有集成测试,一个用于仅检索测试,一个用于创建/更新/删除测试.仅检索基类在TestFixtureSetup期间重新生成数据库,因此每个测试类只执行一次.CUD基类在每次测试之前重新生成数据库.每个存储库类都有自己的相应测试类.
可以想象,整个过程需要相当长的时间(接近7-8分钟才能运行并快速增长).将此运行作为我们的CI(CruiseControl.Net)的一部分运行不是问题,但在本地运行需要很长时间,并且在提交代码之前确实禁止运行它们.
我的问题是,是否有任何最佳实践可以帮助加快这些类型的集成测试的执行速度?
我无法在内存中执行它们(la sqlite),因为我们使用sqlite不支持的某些特定于数据库的功能(计算列等).
此外,整个团队必须能够执行它们,因此在SQL Server Express的本地实例上运行它们可能容易出错,除非这些实例的连接字符串完全相同.
你是如何在你的店里完成这项工作的,哪些方面有效?
谢谢!