Перейти к основному содержимому

Пропуск тестов с помощью Gradle

· 3 мин. чтения

1. Введение

Хотя обычно пропускать тесты — плохая идея, в некоторых ситуациях это может быть полезно и сэкономит нам время. Например, предположим, что мы разрабатываем новую функцию и хотим увидеть результат в промежуточных сборках . В этом случае мы можем временно пропустить тесты, чтобы уменьшить накладные расходы на их компиляцию и запуск. Несомненно, игнорирование тестов может вызвать множество серьезных проблем.

В этом кратком руководстве мы увидим, как пропускать тесты при использовании инструмента сборки Gradle .

2. Использование флагов командной строки

Во-первых, давайте создадим простой тест, который мы хотим пропустить:

@Test
void skippableTest() {
Assertions.assertTrue(true);
}

Когда мы запускаем команду сборки :

gradle build

Мы увидим запущенные задачи:

> ...
> Task :compileTestJava
> Task :processTestResources NO-SOURCE
> Task :testClasses
> Task :test
> ...

Чтобы пропустить любую задачу из сборки Gradle, мы можем использовать параметр -x или –exclude-task . В этом случае мы будем использовать « -x test », чтобы пропустить тесты из сборки.

Чтобы увидеть это в действии, давайте запустим команду сборки с параметром -x :

gradle build -x test

Мы увидим запущенные задачи:

> Task :compileJava NO-SOURCE 
> Task :processResources NO-SOURCE
> Task :classes UP-TO-DATE
> Task :jar
> Task :assemble
> Task :check
> Task :build

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

3. Использование скрипта сборки Gradle

У нас есть больше возможностей пропустить тесты с помощью скрипта сборки Gradle. Например, мы можем пропустить тесты на основании какого-то условия или только в определенной среде, используя метод onlyIf () . Тесты будут пропущены, если этот метод вернет false .

Пропустим тесты, основанные на проверке свойства проекта:

test.onlyIf { !project.hasProperty('someProperty') }

Теперь мы запустим команду сборки и передадим некоторое свойство в Gradle:

gradle build -PsomeProperty

Поэтому Gradle пропускает запуск тестов:

> ...
> Task :compileTestJava
> Task :processTestResources NO-SOURCE
> Task :testClasses
> Task :test SKIPPED
> Task :check UP-TO-DATE
> ...

Более того, мы можем исключить тесты на основе их имени пакета или класса , используя свойство exclude в нашем файле build.gradle :

test {
exclude 'org/boo/**'
exclude '**/Bar.class'
}

Мы также можем пропустить тесты на основе шаблона регулярного выражения. Например, мы можем пропустить все тесты, имя класса которых заканчивается словом « Интеграция »:

test {
exclude '**/**Integration'
}

4. Вывод

В этом руководстве мы узнали, как пропускать тесты при использовании инструмента сборки Gradle. Мы также рассмотрели все соответствующие параметры, которые мы можем использовать в командной строке, а также те, которые мы можем использовать в сценариях сборки Gradle.