我们对相当大的Web应用程序使用Maven/Surefire和Spring/Hibernate事务测试。有138个测试*类,共运行1178个测试。Maven Spring测试在一起运行时失败,但单独成功(ehcache关闭,IllegalTransactionStateException)
一个简单的“MVN测试”将产生82个错误,其性质往往意味着腐败的应用程序上下文:
许多这样的:
IllegalTransactionStateException:预先绑定的JDBC Connection找到了!
其中的几个:
的NoSuchMethodError:org.hibernate.cache.CacheException(Ljava /郎/异常;)V
对于每一个测试失败,运行单独的测试类“MVN测试-Dtest = TestFailingClass“成功。事实上,使用-Dtest = TestClass1,TestClass2等“与我的所有测试类的各个子集成功或失败的方式不同,例如,仅运行失败的测试类成功出现0个错误。为了控制Surefire测试的课程顺序,我很难确定哪些测试课程似乎在不良状态下处于上下文状态。
我在寻找的是帮助确定什么是发生在某种确定性的方式,我当然可以看到从日志运行的测试顺序,但我无法可控地重现该顺序。怎么办吧...
?你的测试是继承自AbstractJUnit4SpringContextTests还是AbstractTransactionalJUnit4SpringContextTests? – 2010-04-21 19:58:32
Spring 2.5,JUnit 4。4,并且大部分是AbstractAnnotationAwareTransactionalTests,尽管我怀疑是有一些版本蠕变。较新的测试类可以从较新的Spring脚手架扩展。在这一点上,我还没有研究过所有的138个测试类。 – Mojo 2010-04-21 21:14:37