Gradle сборка без тестов
Я хочу выполнить команду gradle build
без запуска модульных тестов. Я пробовал следующую команду:
gradle -Dskip.tests build
Однако это не дает результата. Есть ли другая команда, которую я могу использовать?
5 ответ(ов)
Попробуйте выполнить:
gradle assemble
Чтобы увидеть все доступные задачи для вашего проекта, выполните:
gradle tasks
ОБНОВЛЕНИЕ:
На первый взгляд это может показаться не совсем корректным ответом, но внимательно прочитайте вывод команды gradle tasks
или документацию.
Build tasks
-----------
assemble - Собирает выходные артефакты этого проекта.
build - Собирает и тестирует этот проект.
Вы можете добавить следующие строки в файл build.gradle
, чтобы исключить все тесты:
test {
exclude '**/*'
}
Эта конфигурация в секции test
указывает Gradle игнорировать все тестовые файлы в проекте.
Принятый ответ является верным.
С другой стороны, тем способом, которым я ранее решал эту задачу, было добавление следующего кода ко всем проектам:
test.onlyIf { ! Boolean.getBoolean('skip.tests') }
Запустите сборку с параметром -Dskip.tests=true
, и все задачи тестирования будут пропущены.
Проблема, которую вы описали, действительно возникает при использовании -x test
с командой gradle build
, так как это не только пропускает выполнение тестов, но и исключает компиляцию кода тестов. Это может создать сложности в CI/CD процессе, где важна отдельная компиляция и выполнение тестов.
В вашем случае для достижения цели компиляции всего проекта, вы правильно сделали, что использовали команду:
./gradlew build testClasses -x test
Эта команда компилирует основной код проекта и класс файлов тестов, но при этом не запускает сами тесты. Это позволит убедиться, что код компилируется правильно.
После того как вы убедились, что ваш проект компилируется, вы можете выполнить тесты на следующем этапе с помощью:
./gradlew test
Таким образом, вы разделили процесс компиляции и тестирования, что соответствует вашим требованиям в CI/CD. Если вам нужно избежать компиляции ненужного кода в другие этапы, вы можете также рассмотреть использование других задач Gradle, чтобы оптимизировать ваши сборки.
Каждое действие в Gradle является task
, и test
также является task
. Чтобы исключить task
из выполнения Gradle, вы можете использовать опцию --exclude-task
или её краткую форму -x
, за которой следует имя task
, которую необходимо исключить. Пример:
gradle build -x test
Опцию -x
следует повторить для всех task
, которые нужно исключить.
Если у вас есть разные задачи для различных типов тестов в вашем файле build.gradle
, то вам нужно пропустить все задачи, которые выполняют тесты. Например, если у вас есть задача test
, которая выполняет модульные тесты, и задача testFunctional
, которая выполняет функциональные тесты, вы можете исключить все тесты следующим образом:
gradle build -x test -x testFunctional
Инициализация ArrayList в одну строчку
Что значит "Не удалось найти или загрузить основной класс"?
Как установить Java 8 на Mac
Почему в RecyclerView отсутствует onItemClickListener()?
Что значит 'synchronized'?