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

Как скомпилировать все модули maven, даже если тесты терпят неудачу, но не удается выполнить общую сборку, если какие-либо тесты не пройдут

Контекст: я хочу скомпилировать и протестировать все модули в проекте с несколькими модулями, но , если какой-либо сбой компиляции или тестов, я хочу, чтобы общая неудачу.

Конфигурации по умолчанию либо останавливаются при первом отказе, либо пропускают модули после отказа теста

Продолжительность:

mvn clean install

останавливается в первом отказоустойчивом модуле.

Если вы добавите:

mvn clean install -fae//fail at end

тогда все модули запускаются, но если тесты терпят неудачу, то любые зависимые модули skpped:



    [INFO] ------------------------------------------------------------------------
    [INFO] Reactor Summary:
    [INFO] ------------------------------------------------------------------------
    [INFO] Module A ............................................. SUCCESS [15.210s]
    [INFO] Module B ............................................. SUCCESS [10.923s]
    [INFO] Module C ............................................. FAILED [1.731s]
    [INFO] Module D ............................................. SUCCESS [3.791s]
    [INFO] Module E ............................................. SUCCESS [1.488s]
    [INFO] Module F ............................................. SKIPPED (dependency build failed or was skipped)
    [INFO] Module G ............................................. SKIPPED (dependency build failed or was skipped)
    [INFO] Module H ............................................. SKIPPED (dependency build failed or was skipped)
    [INFO] Module I ............................................. SUCCESS [1.690s]
    [INFO] -----------------------------------------

Другой способ принудительно скомпилировать все модули:

mvn clean install -fn//fail never

но это приводит к прохождению сборки, когда тесты терпят неудачу



    [INFO] ------------------------------------------------------------------------
    [INFO] Reactor Summary:
    [INFO] ------------------------------------------------------------------------
    [INFO] Module A ............................................. SUCCESS [15.210s]
    [INFO] Module B ............................................. SUCCESS [10.923s]
    [INFO] Module C ............................................. FAILED [1.731s]
    [INFO] Module D ............................................. SUCCESS [3.791s]
    [INFO] Module E ............................................. SUCCESS [1.488s]
    [INFO] Module F ............................................. SUCCESS [9.062s]
    [INFO] Module G ............................................. SUCCESS [16.324s]
    [INFO] Module H ............................................. SUCCESS [4.032s]
    [INFO] Module I ............................................. SUCCESS [1.690s]
    [INFO] ------------------------------------------------------------------------
    [INFO] Error for project: Module C (during install)
    [INFO] ------------------------------------------------------------------------
    [INFO] There are test failures.

    Please refer to C:\MavenBuildDir\ModuleC\surefire-reports for the
    individual test results.
    [INFO] ------------------------------------------------------------------------
    [INFO] For more information, run Maven with the -e switch
    [INFO] ------------------------------------------------------------------------
    [INFO]  + Ignoring failures
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESSFUL
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time: 30 minutes 38 seconds
    [INFO] Finished at: Fri May 23 16:42:08 BST 2014
    [INFO] Final Memory: 39M/185M

Может ли кто-нибудь посоветовать набор параметров для достижения следующего:

  • скомпилировать все модули
  • выполнить тесты для всех модулей
  • Если модуль тестирует сбой, но модули, зависящие от кода, все еще компилируются и тестируются.

Ответы очень ценятся - в противном случае нам нужно многократно запускать тесты на сервере сборки, если есть несколько проблем - сжигание большого количества времени.

4b9b3361

Ответ 1

Я бы предложил разбить его на два вызова mvn:

mvn clean compile
mvn -fae install

Первый вызов завершится неудачно, если есть ошибки компиляции. Второй вызов будет повторно использовать скомпилированные .class файлы, так как "clean" опущен. В конце концов это не удастся, если есть ошибки тестирования. Но компиляция уже завершена для ВСЕХ модулей.

Ответ 2

Я бы предложил использовать:

mvn -Dmaven.test.failure.ignore=true --fail-at-end clean install

Ответ 3

Вот другой подход: вывод parse maven. Так что либо вы