Пропускане на тестове с Gradle

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') }

Сега ще изпълним командата за изграждане и ще предадем someProperty на Gradle:

gradle build -PsomeProperty

Следователно Gradle пропуска изпълнението на тестовете:

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

Освен това можем да изключим тестове въз основа на името на техния пакет или клас, като използваме свойството за изключване в нашия файл build.gradle :

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

Също така можем да пропуснем тестове въз основа на модел на регулярно изражение. Например, можем да пропуснем всички тестове, чието име на клас завършва с думата „ Интеграция “:

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

4. Заключение

В този урок научихме как да пропускаме тестове, когато използваме инструмента за изграждане на Gradle. Също така преминахме през всички подходящи опции, които можем да използваме в командния ред, както и тези, които можем да използваме в Gradle скриптове за изграждане.