Запустите уже скомпилированный модульный тест с помощью Maven

#java #maven #unit-testing #maven-surefire-plugin

Вопрос:

Я хотел бы знать, можно ли запустить ранее скомпилированный тест (с помощью mvn test-compile ) без необходимости перекомпилировать проект и его тесты. Я знаю о mvn -Dtest=TestClass#testMethod test команде, но она не соответствует моим потребностям.

В более общем плане я пытаюсь найти способ запуска модульных тестов в определенном порядке с использованием списка имен тестов. Любая идея будет оценена по достоинству.

Комментарии:

1. Почему вы хотите запускать тесты в определенном порядке ? Обычно это считается плохой практикой. Тесты должны быть независимы друг от друга и, следовательно, не зависеть от порядка …

2. Если тесты не могут выполняться в произвольном порядке, было бы лучше исправить это, вместо того, чтобы пытаться обойти это с помощью трюков Maven.

Ответ №1:

Если вы запустите maven, вызвав фазу, она выполнит все фазы жизненного цикла, вплоть до той, которую вы вызываете. Например, при вызове

 mvn test
 

все этапы, предшествующие этапу жизненного цикла тестирования, также будут выполнены: проект будет проверен, источники и ресурсы будут сгенерированы и обработаны, источники будут скомпилированы, то же самое произойдет с источниками и ресурсами тестирования и, наконец, будут запущены модульные тесты.

Но вы также можете назвать цель плагина, которая привязана к этапу жизненного цикла. В случае тестовой фазы конечной целью является моджо теста surefire. Так что вы могли бы позвонить

 mvn surefire:test
 

и никакая другая фаза жизненного цикла не будет выполнена.

Комментарии:

1. Определенно то, что мне было нужно, большое вам спасибо.

2. Если это помогло, пожалуйста, отметьте принятый ответ зеленой галочкой 🙂

3. Пришлось подождать 10 минут, чтобы это сделать. Сделано!