Vynechanie testov s Mavenom

1. Úvod

Vynechať testy je často zlý nápad. Existujú však situácie, v ktorých by to mohlo byť užitočné - napríklad keď vyvíjame nový kód a chceme spustiť prechodné zostavenia, v ktorých testy neprechádzajú ani sa nezostavujú.

Iba v týchto situáciách môžeme testy preskočiť, aby sme sa vyhli režijným nákladom na ich zostavenie a spustenie. Samozrejme, zvážte, že nespúšťanie testov môže viesť k zlým postupom kódovania.

V tomto rýchlom výučbe to preskúmame všetky možné príkazy a možnosti na preskočenie testov pomocou Mavenu.

2. Životný cyklus Maven

Predtým, ako sa dostanete k podrobnostiam o tom, ako preskočiť testy, musíme pochopiť, kedy sú testy kompilované alebo spustené. V článku o cieľoch a fázach Maven sa podrobnejšie zaoberáme konceptom životného cyklu Maven, ale pre účely tohto článku je dôležité vedieť, že Maven dokáže:

  1. Ignorujte testy
  2. Zostavte testy
  3. Spustiť testy

V našich príkladoch použijeme balíček fázy, ktorá zahŕňa zostavenie a spustenie testov. Možnosti preskúmané v tomto tutoriále patria do Maven Surefire Plugin.

3. Používanie príznakov príkazového riadku

3.1. Vynechanie kompilácie testu

Najprv sa pozrime na príklad testu, ktorý sa nezhromažďuje:

@Test public void thisDoesntCompile () {baeldung; }

Keď spustíme príkaz z príkazového riadku:

balíček mvn

Dostaneme chybu:

[INFO] ----------------------------------------------- -------------- [CHYBA] CHYBA KOMPILÁCIE: [INFO] --------------------------- ---------------------------------- [CHYBA] / Používatelia / baeldung / skip-tests / src / test / java / com / antmordel / skiptests / PowServiceTest.java: [11,9] nie je vyhlásenie [INFO] 1 chyba

Preto poďme preskúmať ako preskočiť fázu kompilácie pre zdroje testu. V Mavene môžeme použiť maven.test.skip vlajka:

balíček mvn -Dmaven.test.skip

Výsledkom je, že testovacie zdroje nie sú kompilované, a preto sa nevykonávajú.

3.2. Vynechanie vykonania testu

Ako druhú možnosť sa pozrime ako môžeme zostaviť testovací priečinok, ale proces spustenia preskočiť. Je to užitočné v tých prípadoch, keď nemeníme podpis metód alebo tried, ale zmenili sme obchodnú logiku a vo výsledku sme porušili testy. Uvažujme o vykonštruovanom testovacom prípade, ako je ten uvedený nižšie, ktorý vždy zlyhá:

@Test public void thisTestFails () {fail ("Toto je zlyhaný testovací prípad"); }

Keďže sme zaradili vyhlásenie zlyhať (), ak spustíme balíček fázy, zostavenie zlyhá s chybou:

[CHYBA] Zlyhania: [CHYBA] PowServiceTest.thisTestFails: 16 Toto je zlyhaný testovací prípad [INFO] [CHYBA] Spustené testy: 2, zlyhania: 1, chyby: 0, vynechané: 0

Predstavme si, že chceme preskočiť vykonávanie testov, ale napriek tomu ich chceme skompilovať. V takom prípade môžeme použiť - Skúšky preskočiť vlajka:

balíček mvn -DskipTests

a fáza balenia bude úspešná. V Mavene je tiež vyhradený doplnok na vykonávanie integračných testov, ktorý sa nazýva maven Failsafe Plugin. The - Skúšky preskočiť preskočí vykonávanie obidvoch testov jednotiek (surefire) a integračných testov (Failsafe). Aby sme len preskočili integračné testy, môžeme zložiť -DskipITs systémový majetok.

Na záver stojí za zmienku, že dnes už zastaraná vlajka -Dmaven.test.skip.exec zostaví aj testovacie triedy, ale nespustí ich.

4. Používanie konfigurácie Maven

V prípade, že potrebujeme vylúčiť kompiláciu alebo spustenie testov po dlhšiu dobu, môžeme upraviť pom.xml súboru, aby obsahovala správnu konfiguráciu.

4.1. Vynechanie kompilácie testu

Rovnako ako v predchádzajúcej časti, poďme preskúmať ako môžeme sa vyhnúť kompilácii testovací priečinok. V tomto prípade použijeme pom.xml spis. Pridajme nasledujúcu vlastnosť:

 pravda 

Pamätajte na to túto hodnotu môžeme prepísať pridaním opačného príznaku do príkazového riadku:

mvn -Dmaven.test.skip = chybný balík

4.2. Vynechanie vykonania testu

Ako druhý krok opäť poďme preskúmať ako môžeme vytvoriť testovací priečinok, ale preskočiť vykonávanie testu pomocou konfigurácie Maven. Aby sme to mohli urobiť, musíme nakonfigurovať Maven Surefire Plugin s vlastnosťou:

 skutočný org.apache.maven.plugins maven-surefire-plugin 2.22.1 $ {tests.skip} 

Majetok Maven testy.skip je vlastná vlastnosť, ktorú sme predtým definovali. Preto ho môžeme prepísať, ak chceme vykonať testy:

mvn -Dtests.skip = chybný balík

4. Záver

V tomto rýchlom výučbe sme preskúmali všetky alternatívy, ktoré ponúka Maven, aby sme preskočili kompiláciu a / alebo spustenie testov.

Prešli sme možnosťami príkazového riadku Maven a možnosťami konfigurácie Maven.


$config[zx-auto] not found$config[zx-overlay] not found