Gradle build без тестов

Я хочу выполнить gradle build без выполнения модульных тестов. Я старался:

$ gradle -Dskip.tests build

Кажется, это ничего не делает. Есть ли какая-то другая команда, которую я мог бы использовать?

7 ответов

Решение

Вы должны использовать -x Аргумент командной строки, который исключает любую задачу.

Пытаться:

gradle build -x test 

Обновить:

Ссылка в комментарии Питера изменилась. Вот схема из руководства пользователя Gradle

Пытаться:

gradle assemble

Чтобы перечислить все доступные задачи для вашего проекта, попробуйте:

gradle tasks

ОБНОВИТЬ:

На первый взгляд это может показаться не самым правильным ответом, но внимательно прочитайте gradle tasks вывод или документы.

Build tasks
-----------
assemble - Assembles the outputs of this project.
build - Assembles and tests this project.

Вы можете попробовать добавить следующие строки в build.gradle, **/* исключить все тесты.

test {
    exclude '**/*'
}

Принятый ответ является правильным.

OTOH, способ, которым я ранее решил это было добавить следующее для всех проектов:

test.onlyIf { ! Boolean.getBoolean('skip.tests') }

Запустите сборку с -Dskip.tests=true и все тестовые задания будут пропущены.

С помощью -x test пропустить выполнение теста, но это также исключает компиляцию тестового кода.

gradle build -x test 

В нашем случае у нас есть процесс CI/CD, в котором одна цель - компиляция, а следующая цель - тестирование (Сборка -> Тест).

Итак, для нашего первого Buildцель мы хотели убедиться, что весь проект хорошо компилируется. Для этого мы использовали:

./gradlew build testClasses -x test

По следующей цели мы просто выполняем тесты.

Каждое действие в Gradle - это task, и так test. И исключитьtask из Gradle Run вы можете использовать опцию --exclude-task или это стенография -xза которым следует имя задачи, которую необходимо исключить. Пример:

gradle build -x test

В -x опцию следует повторить для всех задач, которые необходимо исключить.

Если у вас разные задачи для разных типов тестов в вашем build.gradleфайл, то вам нужно пропустить все те задачи, которые выполняет test. Скажите, что у вас есть задачаtest который выполняет юнит-тесты и задачу testFunctionalкоторый выполняет функциональные тесты. В этом случае вы можете исключить все тесты, как показано ниже:

gradle build -x test -x testFunctional

Вы можете исключить задачи

 gradle build --exclude-task test 

https://docs.gradle.org/current/userguide/command_line_interface.html

Другой способ отключить тестовые задачи в проекте:

tasks.withType(Test) {enabled = false}

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

Этот способ работает для всех видов тестовых задач, а не только для Java-тестов. Также этот способ безопасен. Вот что я имею в виду, скажем: у вас есть набор проектов на разных языках: если мы попытаемся добавить этот вид записи в основной build.gradle:

 subprojects{
 .......
 tests.enabled=false
 .......
}

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

Ссылка

Чтобы исключить любую задачу из использования 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

Надеюсь, что это даст вам основные

В подключаемом модуле 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 без теста у вас есть два варианта:

$ gradle assemble
$ gradle build -x test

но если вы хотите скомпилировать тест:

$ gradle assemble testClasses
$ gradle testClasses

Вам нужно будет добавить -x test

например ./gradlew build -x test

или

gradle build -x test
gradle build -x test --parallel

Если ваша машина имеет несколько ядер. Однако не рекомендуется использовать параллельную очистку.

Пожалуйста, попробуйте это:

gradlew -DskipTests=true build

Другие вопросы по тегам