我有一套传统的单元测试,其中大部分都是Spring AbstractTransactionalJUnit4SpringContextTests
测试,但有一些管理自己的事务。不幸的是,这似乎引入了副作用,导致完全不相关的测试在修改测试数据集时失败,即失败的测试在独立运行时(使用相同的初始数据集)工作,但在运行时失败部分完整的测试。自动确定Junit测试副作用
测试通常在Maven的常规Maven构建过程中通过Maven的surefire插件运行。
我正在寻找的是一种自动化的方式来排列执行测试的数量和顺序来找出罪魁祸首。一种天真而又相当昂贵的方法,将采用所有测试的能力集并运行所有可能的组合。更优化的方法将使用现有的测试执行顺序(主要是随机的但稳定的)并测试所有潜在的有序子集。我知道这个过程的运行时间可能很长。
是否有任何工具/ Maven插件可以做到这一点开箱即用?
不是您的问题的答案,而是依赖于Spring管理的事务和回滚(在您的情况下失败),请考虑在每次测试之前重新创建整个数据库。看看我的[文章](http://nurkiewicz.blogspot.com/2011/11/spring-pitfalls-transactional-tests.html)。 – 2012-03-13 11:56:58
Tomasz Nurkiewicz:从头开始,我会这样做。不幸的是,加载所有需要的数据需要大约20秒,这就排除了这种方法(我知道单元测试不应该依赖太多的数据,但是在使用遗留代码时,必须使用这些数据)。 – 2012-03-13 12:01:03