我正在研究一个项目的测试环境,并且正在研究使用DbUnit.NET进行大量的数据库交互测试。我确实有一个非常大的问题:DbUnit如何防范同时运行多个测试?
我们针对Oracle运行,并且为每个开发人员设置单独的测试数据库实例确实是不可行的(尤其是因为我们只有1位DBA已经被绑定了时间) 。这意味着所有开发人员和连续集成服务器都需要使用相同的数据库模式。
因此,在这个问题上:有没有一种好方法可以防止同时测试1个以上的人?在db表中放入一条表示测试正在运行的记录很容易,然后在测试完成后将其删除,但NUnit无法在测试会话的开始和结束时运行某些操作。
还有其他想法吗?它似乎应该是一个很常见的问题......或者每个人是否都为每个可能运行测试的开发人员/测试人员运行单独的数据库实例?
这基本上是我想我会做的。我最大的问题是我正在处理大量遗留的pl/sql(超过10k行值),并触发几乎所有的表格,并且所有这些都未经测试。所以我必须通过Oracle及其所有的触发器和sprocs,否则我很想装配一个内存中的SQLite数据库或其他东西......感谢您的输入! – CodingWithSpike 2009-07-30 13:03:59