Мы используем транзакционные тесты Maven/Surefire и Spring/Hibernate для довольно большого веб-приложения. Есть 138 тестовых * классов, в которых работает 1178 тестов.Тесты Maven Spring терпят неудачу при совместном запуске, но успешно выполняются индивидуально (ehcache closed, IllegalTransactionStateException)
Прямолинейный «МВН тест» произведет 82 ошибок, характер которых, как правило, подразумевают коррумпированный контекст приложения:
Многие из них:
IllegalTransactionStateException: Pre переплете JDBC Connection найден!
Некоторые из них:
NoSuchMethodError:. Org.hibernate.cache.CacheException (Ljava/языки/Исключение;) V
Для каждого не прошел тест, выполнив тестовый класс индивидуально «тест MVN -Dtest = TestFailingClass "успешно. Действительно, использование -Dtest = TestClass1, TestClass2, Etc. "С различными подмножествами всех моих тестовых классов преуспевает или терпит неудачу по-разному. Например, запуск только неудачных тестовых классов выполняется с ошибками 0.
Без видимых средств чтобы контролировать порядок классов, проверенных Surefire, мне сложно определить, какой из моих тестовых классов, похоже, оставляет контекст в плохом состоянии.
Что я ищу - это стратегия, которая поможет определить, что такое я могу, конечно, увидеть, что порядок испытаний проходит из журнала, но я не могу воспроизвести этот порядок под контролем.
И, конечно, предложения по что делать с этим ...
Какой весна и JUnit версии вы используете? Наследуют ли ваши тесты от AbstractJUnit4SpringContextTests или AbstractTransactionalJUnit4SpringContextTests? –
Весна 2.5, JUnit 4.4, и в основном AbstractAnnotationAwareTransactionalTests, хотя я подозреваю, что существует некоторая версия ползучести. Новые классы тестов могут простираться от новых лесов Spring. На данный момент я не исследовал все 138 тестовых классов. – Mojo