Я хочу выполнить gradle build
без выполнения модульных тестов. Я старался:
$ gradle -Dskip.tests build
Кажется, это ничего не делает. Есть ли какая-то другая команда, которую я мог бы использовать?
-DskipTests
для Maven
Я хочу выполнить gradle build
без выполнения модульных тестов. Я старался:
$ gradle -Dskip.tests build
Кажется, это ничего не делает. Есть ли какая-то другая команда, которую я мог бы использовать?
-DskipTests
для Maven
Ответы:
Вы должны использовать -x
аргумент командной строки, который исключает любую задачу.
Пытаться:
gradle build -x test
Обновить:
Ссылка в комментарии Питера изменилась. Вот схема из руководства пользователя Gradle
-x integTest
и так далее, поэтому не так удобно, как одеяло Maven -DskipTests
.
run
я вижу эффект моей программы Hello. Но я думаю, что он снова все компилирует. Я хотел бы только выполнить программу Java.
Пытаться:
gradle assemble
Чтобы перечислить все доступные задачи для вашего проекта, попробуйте:
gradle tasks
ОБНОВИТЬ:
Поначалу это может показаться не самым правильным ответом, но внимательно прочитайте gradle tasks
вывод или документы.
Build tasks
-----------
assemble - Assembles the outputs of this project.
build - Assembles and tests this project.
gradle assemble
не будут компилироваться основные файлы. Если вы работаете над исправлением модульного теста, тогда вам нужно gradle assemble testClasses
- я думаю, что наименование задачи сборки довольно запутанное.
Принятый ответ является правильным.
OTOH, способ, которым я ранее решил это, заключался в добавлении следующего во все проекты:
test.onlyIf { ! Boolean.getBoolean('skip.tests') }
Запустите сборку с -Dskip.tests=true
и все тестовые задачи будут пропущены.
Вы можете добавить следующие строки build.gradle
, **/*
исключая все тесты.
test {
exclude '**/*'
}
Вы можете исключить задачи
gradle build --exclude-task test
Чтобы исключить любую задачу из Gradle, используйте параметр -x
командной строки. Смотрите пример ниже
task compile << {
println 'task compile'
}
task compileTest(dependsOn: compile) << {
println 'compile test'
}
task runningTest(dependsOn: compileTest) << {
println 'running test'
}
task dist(dependsOn:[runningTest, compileTest, compile]) << {
println 'running distribution job'
}
Выход: gradle -q dist -x runningTest
task compile
compile test
running distribution job
Надеюсь, что это даст вам основные
Другой способ отключить тестовые задачи в проекте:
tasks.withType(Test) {enabled = false}
такое поведение иногда требуется, если вы хотите отключить тесты в одном из проектов (или в группе проектов).
Этот способ работает для всех видов тестовых задач, а не только для Java-тестов. Также этот способ безопасен. Вот что я имею в виду, скажем: у вас есть набор проектов на разных языках: если мы попытаемся добавить такую запись в main build.gradle
:
subprojects{
.......
tests.enabled=false
.......
}
мы потерпим неудачу в проекте, если у нас нет задачи, называемой тестами
Использование -x test
пропуска теста, но это также исключает компиляцию кода теста.
gradle build -x test
В нашем случае у нас есть процесс CI / CD, где одна цель - это компиляция, а следующая цель - тестирование (Build -> Test).
Итак, для нашей первой Build
цели мы хотели убедиться, что весь проект хорошо компилируется. Для этого мы использовали:
./gradlew build testClasses -x test
На следующей цели мы просто выполняем тесты.
Пожалуйста, попробуйте это:
gradlew -DskipTests=true build
В плагине Java :
$ gradle tasks
Build tasks
-----------
assemble - Assembles the outputs of this project.
build - Assembles and tests this project.
testClasses - Assembles test classes.
Verification tasks
------------------
test - Runs the unit tests.
Gradle build без теста у вас есть два варианта:
$ gradle assemble
$ gradle build -x test
но если вы хотите скомпилировать тест:
$ gradle assemble testClasses
$ gradle testClasses