У меня есть набор устаревших модульных тестов, большинство из которых - тесты Spring AbstractTransactionalJUnit4SpringContextTests
, но некоторые из них управляют транзакциями самостоятельно. К сожалению, это, похоже, привело к побочным эффектам, приводящим к сбоям полностью несвязанных тестов при изменении набора тестовых данных, т. Е. Неудачный тест работает при его запуске самостоятельно (с тем же набором исходных данных), но сбой при запуске как часть полного набора тестов.Автоматическое определение побочных эффектов Junit
Тесты, как правило, проходят через плагин Maven's surefire во время обычной сборки Maven.
Что я ищу - это автоматический способ перестановки количества и порядка выполненных тестов, чтобы выяснить виновника. Наивный, но довольно дорогостоящий подход, взял бы набор всех тестов и выполнил все возможные комбинации. Более оптимизированный подход будет использовать существующий порядок выполнения теста (который в основном случайный, но стабильный) и проверить все потенциальные упорядоченные подмножества. Я знаю, что время выполнения этого процесса может быть длительным.
Есть ли инструменты/плагины Maven, которые могут сделать это из коробки?
Не ответ на ваш вопрос, но вместо того, чтобы полагаться на транзакции с отсрочкой и откаты (которые не срабатывают в вашей ситуации), следует просто воссоздать всю базу данных перед каждым тестом. Ознакомьтесь с моей [статьей] (http://nurkiewicz.blogspot.com/2011/11/spring-pitfalls-transactional-tests.html). –
Tomasz Nurkiewicz: Это то, что я буду делать, начиная с нуля. К сожалению, загрузка всех необходимых данных занимает ~ 20 с, что исключает этот подход (я знаю, что модульные тесты не должны полагаться на столько данных, но при работе с устаревшим кодом нужно работать с тем, что есть). –