Я хочу выполнить 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