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.