Недавно мы столкнулись с миграцией с jmockit 0.99915 на jmockit 1.21 и с Java 6 на java 7 после внесения изменений, связанных с устаревшими API и другими вещами, наш тест работал медленнее, чем до миграции.
До миграции наш интеграционный тест 1600 выполнялся за 5-7 минут, теперь требуется 15-20 минут, ¿У кого-нибудь были подобные проблемы?
Вот несколько соображений:
- Я знаю, что есть большая версия jmockit, но нам нужно использовать ее.
- У нас есть несколько модулей в нашем приложении (36), так что это не было бы проблемой, если бы у нас был только один или два, но теперь наши конструкции требуют создания нескольких наших, поэтому мы пересекаемся с другими конструкциями в системе непрерывной интеграции, которую нам не разрешено делать что.
- Мы больше ничего не меняли ни в нашем коде, ни в наших конфигурациях, только это обновление: (Java 6 до java 7, Maven 2.2.1 до maven 3.3.9, Jmockit 0.99915 до 1.21)
Наше приложение:
- Веб-приложение на основе Spring, использующее Spring runner для запуска теста.
- Джунит версии 4.10
- У нас есть база данных в памяти для запуска теста
- Мы используем аннотации NonStrictExpectations и @Mocked для запуска нашего теста, у некоторых тестовых случаев есть родитель, который расширяется там, где объявлены фиктивные поля.
- Для некоторых больших тестов требуется более 30 имитируемых объектов, а для меньших - всего один или два.