«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'
}
Мы также можем пропустить тесты на основе шаблона регулярного выражения. Например, мы можем пропустить все тесты, имя класса которых заканчивается словом «Integration»:
test {
exclude '**/**Integration'
}
4. Заключение
В этом уроке мы узнали, как пропускать тесты при использовании сборки Gradle. инструмент. Мы также рассмотрели все соответствующие параметры, которые мы можем использовать в командной строке, а также те, которые мы можем использовать в сценариях сборки Gradle.