Выполнение модульных тестов перед сборкой в ​​мультимодульном проекте Maven. - PullRequest
0 голосов
/ 23 сентября 2011

У меня есть мультимодульный проект Maven. В каждом модуле есть юнит-тесты. Когда я выполняю тесты чистой установки, запускаю перед каждым модулем, и если все тесты в одном модуле проходят успешно, он успешно собирается. Если один тест не пройден, все остальные тесты в этом модуле будут выполнены успешно (или некоторые из них пройдут успешно, другие не пройдут). Сборка модуля, в которую помещен первый неудачный юнит-тест, не удалась. Другие модули пропущены. Мне нужна такая вещь: сначала запустить все модульные тесты во всех модулях, а после этого, если нет неудачных тестов, собрать все модули или если есть один или несколько неудачных тестов в одном или модулях режима, пропустить сборку всех модулей. Вы можете помочь мне с этим?

Ответы [ 3 ]

1 голос
/ 23 сентября 2011

пробег:

mvn clean test
mvn install -Dmaven.test.skip=true

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

1 голос
/ 23 сентября 2011

AFAIK это невозможно в Maven. Вы пытаетесь изменить жизненный цикл сборки maven, который не разрешен в maven. Однако есть несколько параметров конфигурации, которые вы можете передать maven, и это повлияет на тестирование.

mvn install -Dmaven.test.skip

Это не будет запускать юнит-тесты вообще

mvn install -Dmaven.test.failure.ignore=true 

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

0 голосов
/ 23 сентября 2011

Проблема:

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

Безумные решения каким-то образом агрегируют источники (и внешние зависимости) из всех дочерних проектов и запускают compile и test на этом конгломерате, но это будет такой чудовищный взлом, что я рад, что они этого не сделали это.

...