Подтвердить что ты не робот

Запуск тестов JUnit в Maven без создания и копирования файлов

У меня есть большой проект Maven, в котором есть несколько модулей. Когда я хочу запустить JUnit-тест из одного модуля, я запускаю 'mvn -Dtest = NameOfTest test' в каталоге, который содержит все модули. Когда я запускаю эту команду, Maven проходит через каждый модуль и пытается скомпилировать его (хотя он уже скомпилирован), который включает в себя копирование кучи файлов и добавление к общему времени теста. Кажется, что команда "test" для плагина Maven surefire выполняет все шаги до теста. Мне было интересно, есть ли способ выполнить только тестовый шаг и не беспокоить все попытки компиляции и копирования файлов.

Вот несколько результатов до начала теста:

[INFO] 
[INFO] --- build-helper-maven-plugin:1.5:add-test-source (add-test-source) @ module1 ---
[INFO] Test Source directory: <directory in module1 with some generated sources> added.
[INFO] 
[INFO] --- maven-resources-plugin:2.5:testResources (default-testResources) @ module1 ---
[debug] execute contextualize
[INFO] Copying 108 resources
[INFO] Copying 1113 resources
[INFO] Copying 1 resource
[INFO]

Он повторяет это для каждого из других модулей. Все сказали, что это занимает минуту или две, прежде чем он начнет тест. Кто-нибудь знает, как запустить тест, не беспокоясь обо всем компиляции заранее? Пожалуйста, дайте мне знать, если еще есть информация, которую я должен предоставить.

4b9b3361

Ответ 1

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

mvn surefire:test

или если вы хотите запустить только один тест

mvn -Dtest=NameOfTest surefire:test

Ответ 2

Если вы просто хотите пропустить компиляцию тестов из строки cmd, используйте -Dmaven.test.skip=true.

Следует также отметить, что, хотя maven.test.skip будет НЕ компилировать любые тесты, он, однако, выполнит любые скомпилированные тесты, которые пробились в <testOutputDirectory>.

На основе документации для skip из плагина maven-resources копирование тестовых ресурсов следует пропустить с помощью maven.test.skip arg выше.

Установите значение 'true' для обхода копирования тестовых ресурсов. Его использование НЕ РЕКОМЕНДУЕТСЯ, но довольно удобно. Свойство пользователя: maven.test.skip.

Ответ 3

Что случилось с простое тестирование теста внутри модуля, в котором находится тест? Таким образом, Maven не будет пытаться создавать другие модули, которые вас не интересуют.