"Пропуск выполнения surefire, потому что он уже был запущен для этой конфигурации"?
Пожалуйста, извините за вопрос newb - мои концептуальные модели все еще довольно неполны...
Я пытаюсь повторно выполнить тесты TestNG из командной строки, используя maven и surefire. Моя командная строка выглядит так:
D:workspacesworkspace01aptest>mvn clean install surefire:test -Dtests=myTestNGSuite test
Ясно, что я не получаю его, потому что результат, который я получаю, включает:
[INFO] --- maven-surefire-plugin:2.10:test (default-test) @ aptest ---
[INFO] Skipping execution of surefire because it has already been run for this configuration
Как очистить конфигурацию, чтобы я мог повторно запустить свой набор TestNG из командной строки? Есть ли лучший способ запустить наборы TestNG из команды линия?
ТИА, -- >Аарон
2 ответа:
Тестовая цель плагина surefire автоматически запускается на этапе тестирования, поэтому в первый раз просто запустите
mvn clean install -Dtest=MyTestNGTest
А затем, если вы хотите повторно запустить, сделайте
mvn install -Dtest=MyTestNGTest
Обратите внимание, что я не вызываю чистую цель, чтобы перекомпилировались только ваши изменения тестовых случаев или кода, и что я не вызываю тестовую цель плагина surefire.
На основе команды, которую вы дали
mvn clean install surefire:test -Dtests=myTestNGSuite test
Кстати: где параметр Тесты должен быть назван тест
, Что означает выполнить установку жизненного цикла e, что означает выполнить следующие шаги:
- проверить
- инициализировать,
- генерация-источники,
- процесс-источники,
- генерировать-ресурсы,
- процесс-ресурсы,
- компиляция,
- классы процессов,
- generate-test-sources,
- процесс-тест-источники,
- generate-test-resources,
- процесс-тест-ресурсы,
- test-compile,
- процесс-тест-классы,
- тест,
- prepare-package,
- пакет,
- предварительный интеграционный тест,
- интеграционный тест,
- постинтеграционный тест,
- проверить,
- установить
Как вы можете смотрите, что в этом жизненном цикле тестовая фаза уже была run...in другими словами, тест surefire: test не имеет смысла, как и тест , который запускал бы жизненный цикл следующим образом:
- проверить
- инициализировать,
- генерация-источники,
- процесс-источники,
- генерировать-ресурсы,
- процесс-ресурсы,
- компиляция,
- классы процессов,
- generate-test-sources,
- процесс-тест-источники,
- generate-test-resources,
- процесс-тест-ресурсы,
- test-compile,
- процесс-тест-классы,
- тест,
Поэтому для запуска пакета в TestNG достаточно вызвать Maven следующим образом:
mvn -Dtest=myTestNGSuite test
Или, если вы выполнили тест life cylce до этого, это может быть сокращено до:
mvn -Dtest=myTestNGSuite surefire:test
Кроме того, обычно вы не должны использовать наборы тестов ни в JUnit, ни в TestNG cause maven-surefire-plugin автоматически распознает модульные тесты в пределах правильного locaiton (src / test / java). поэтому нет необходимости писать наборы тестов. Кстати, вы должны определить более актуальную версию плагина maven-surefire (2.13 в то же время).