Tests overslaan met Gradle

1. Inleiding

Hoewel het overslaan van tests meestal een slecht idee is, zijn er situaties waarin het nuttig kan zijn en het ons wat tijd zal besparen. Stel dat we een nieuwe functie aan het ontwikkelen zijn, en we willen een resultaat zien binnen de tussenliggende builds. In dit geval kunnen we de tests tijdelijk overslaan om de overhead van het compileren en uitvoeren ervan te verminderen. Het negeren van de tests kan ongetwijfeld veel ernstige problemen veroorzaken.

In deze korte zelfstudie zullen we zien hoe u tests kunt overslaan bij het gebruik van de Gradle-buildtool.

2. Met behulp van opdrachtregelvlaggen

Laten we eerst een eenvoudige test maken die we willen overslaan:

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

Wanneer we het bouwen opdracht:

geleidelijke opbouw

We zullen lopende taken zien:

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

Om een ​​taak uit de Gradle-build over te slaan, kunnen we de -X of -Exclude-taak keuze. In dit geval, we gebruiken '-x test”Om tests van de build over te slaan.

Om het in actie te zien, laten we het bouwen commando met -X keuze:

gradle build -x test

We zullen lopende taken zien:

> Taak: compileJava NO-SOURCE> Taak: processResources NO-SOURCE> Taak: klassen UP-TO-DATE> Taak: jar> Taak: assembleren> Taak: check> Taak: bouwen

Als gevolg hiervan worden de testbronnen niet gecompileerd en daarom niet uitgevoerd.

3. Het Gradle Build-script gebruiken

We hebben meer opties om tests over te slaan met behulp van het Gradle-buildscript. Bijvoorbeeld, we kunnen tests overslaan op basis van een bepaalde conditie of alleen in een bepaalde omgeving met behulp van de alleen als() methode. Tests worden overgeslagen als deze methode terugkeert false.

Laten we tests overslaan die zijn gebaseerd op het controleren van een projecteigenschap:

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

Nu gaan we de bouwen commando en pass someProperty te grijpen:

gradle build -PsomeProperty

Daarom slaat Gradle het uitvoeren van de tests over:

> ...> Taak: compileTestJava> Taak: processTestResources NO-SOURCE> Taak: testClasses> Taak: test OVERSLAAN> Taak: controleer UP-TO-DATE> ...

Bovendien, we kunnen tests uitsluiten op basis van hun pakket- of klassenaam de ... gebruiken uitsluiten eigendom in ons build.gradle het dossier:

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

We kunnen ook tests overslaan op basis van een regex-patroon. We kunnen bijvoorbeeld alle tests overslaan waarvan de klassenaam eindigt op het woord 'Integratie“:

test {uitsluit '** / ** integratie'}

4. Conclusie

In deze zelfstudie hebben we geleerd hoe we tests kunnen overslaan bij het gebruik van de Gradle-buildtool. We hebben ook alle relevante opties doorlopen die we op de opdrachtregel kunnen gebruiken, evenals degene die we kunnen gebruiken in Gradle-buildscripts.