Maven Verify Запуск и остановка Spring Test Runner в каждом классе - PullRequest
0 голосов
/ 04 января 2019

У меня есть приложение Spring Boot с ~ 500 тестами (единица и в основном интеграция).

Когда я запускаю тесты в IntelliJ с помощью второго щелчка -> Выполнить все тесты - тесты запускаются примерно через 10-15 минут.

Когда я пытаюсь запустить тесты с «mvn verify -P itest» в терминале IntelliJ, время выполнения составляет около часа. Это потому, что эта команда запускает и останавливает сервер Spring Test Runner на каждом классе (что не является моим желаемым результатом).

Второй щелчок IntelliJ -> Выполнить все тесты запускает его только один раз. Наше задание Jenkins запускает тесты с «mvn verify -P itest», поэтому мой вопрос заключается в том, как я могу изменить это поведение, чтобы запускать и останавливать Test Runner только один раз (с помощью этой команды «mvn verify -P itest»).

itest - это профиль, который мы имеем в нашем pom.xml, который включает в себя классы, содержащие интеграционные тесты (с использованием отказоустойчивого плагина maven)

Вот аннотации нашего базового абстрактного класса Integration Test

@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = MainApplication.class, webEnvironment = WebEnvironment.RANDOM_PORT)

Я нашел эту статью, которая может быть похожа на мою проблему, но это не объясняет поведение, которое мне дает IntelliJ.

Сброс Spring-Boot во время интеграционных тестов

Заранее большое спасибо

1 Ответ

0 голосов
/ 07 февраля 2019

Я узнал, почему это происходит. В моем файле pom была настройка Отказоустойчивое свойство maven 'reuseForks' имеет значение false.

Я изменил это, чтобы быть правдой, и теперь он работает нормально.

Intellij работает аналогично - он повторно использует вилки для всех тестов.

Подробнее

http://maven.apache.org/surefire-archives/surefire-2.17/maven-failsafe-plugin/examples/fork-options-and-parallel-execution.html

...