Запуск тестов в Maven через командную строку

Сборка производится командой mvn clean test из директории с проектом.

mvn clean test                                            --- прогонит ВСЕ тесты
mvn clean test -Dtest=SearchCase                          --- прогонит все тесты из директории folks\src\test\resources\cases\search
mvn clean test -Dtest.case=test_00_all_fields_debug_test  --- прогонит только тест test_00_all_fields_debug_test  
mvn clean test -Dtest.case=test_s                         --- прогонит все тесты, начинающиеся на test_s → test_s_01_search_by_surname, test_s_02_search_by_date, test_s_99_skipped_test   

(warning) ВАЖНО: чтобы ваш тест вообще запустился, он должен начинаться со слова «test_». Дальше может быть все, что хотите, цифры, буквы итд.

-Dtest

Флаг -Dtest — запустить Java-тест. Если открыть этот тест (Navigate — Class — SearchCase в IDEA), то мы увидим, что этот Java-класс выполняет все тестики из директории с тестами search

protected String getTestCasesRootPath() {
    return TEST_CASES_ROOT_PATH + "search";
}  

-Dtest.case

Этот флаг позволяет запустить конкретный тест. Не всю директорию, а только тот тест, который вы сейчас написали. 

Тест-кейс в понимании системы — это тест в нашем понимании.  Чтобы запустить один любой тест, надо указать его название через этот флаг:

mvn clean test -Dtest.case=test_s_05_search_nothing_found

Можно указать не название теста целиком, а только его начало:

mvn clean test -Dtest.case=test_s   --- прогонит все тесты, начинающиеся на test_s → test_s_01_search_by_surname, test_s_02_search_by_date, test_s_99_skipped_test  

Именно для этого в тестах обычно и ставятся эти префиксы: 

  • s — search
  • se — extended search
  • so — sort
  • ...

Благодаря им мы можем запустить тесты пачкой. Например, все тесты на поиск. И для этого нам даже не надо знать название java-класса, описывающего тест на поиск (чтобы вызывать его через флаг -Dtest). Намного проще и быстрее будет запустить все тест-кейсы, начинающиеся на префикс