"Пропуск выполнения 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 2

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 в то же время).