Zostavte nádobu s Mavenom a ignorujte výsledky testu

1. Úvod

Tento rýchly sprievodca ukazuje, ako zostaviť nádobu s Mavenom, pričom ignorujete výsledky testu.

V predvolenom nastavení Maven spúšťa jednotkové testy automaticky pri vytváraní projektu. Avšak existujú zriedkavé prípady, keď je možné testy preskočiť, a musíme projekt postaviť bez ohľadu na výsledky testu.

2. Budovanie projektu

Vytvorme jednoduchý projekt, ktorý obsahuje aj malý testovací prípad:

public class TestFail {@Test public void whenMessageAssigned_thenItIsNotNull () {String message = "ahoj tam"; assertNotNull (správa); }}

Vytvorme súbor jar vykonaním nasledujúceho príkazu Maven:

balíček mvn

Výsledkom bude kompilácia zdrojov a vygenerovanie a maven-0.0.1-SNAPSHOT.jar súbor v adresári / target.

Teraz poďme trochu pozmeniť test, aby začal zlyhávať.

@Test public void whenMessageAssigned_thenItIsNotNull () {String message = null; assertNotNull (správa); }

Tentokrát, keď sa pokúšame spustiť balíček mvn príkaz znova, zostavenie zlyhá a súbor maven-0.0.1-SNAPSHOT.jar sa nevytvorí.

To znamená, ak máme v našej aplikácii zlyhávajúci test, nemôžeme poskytnúť spustiteľný súbor, pokiaľ test neopravíme.

Ako teda môžeme vyriešiť tento problém?

3. Argumenty Maven

Maven má svoje vlastné argumenty na riešenie tejto otázky:

  • -Dmaven.test.failure.ignore = pravdaignoruje každú poruchu, ku ktorej dôjde počas vykonávania testu
  • -Dmaven.test.skip = pravda by nezostavil testy
  • -fn, -fae nikdy nezlyhá pri zostavovaní bez ohľadu na výsledky testov

Poďme spustiť mvn balík -Dmaven.test.skip = true príkaz a pozrite si výsledky:

[INFO] Testy sú preskočené. [INFO] STAVEBNÝ ÚSPECH

To znamená, že projekt bude zostavený bez zostavenia testov.

Teraz spustime mvn balíček -Dmaven.test.failure.ignore = true príkaz:

[INFO] Spustenie testfail.TestFail [CHYBA] whenMessageAssigned_thenItIsNotNull java.lang.AssertionError [INFO] BUILD SUCCESS

Náš test jednotky zlyhá pri tvrdení, ale zostavenie je úspešné.

Nakoniec otestujme -fn, -fae možnosti. Obaja, balíček -fn a balíček -fae príkazy stavajú jar súbor a vyrobiť STAVEBNÝ ÚSPECH výstup bez ohľadu na whenMessageAssigned_thenItIsNotNull () test zlyhal.

V prípade viacmodulového projektu -fn možnosť by sa mala použiť. -fae pokračuje modulom, ktorý má zlyhávajúci test, ale preskočí všetky závislé moduly.

4. Doplnok Maven Surefire

Ďalším pohodlným spôsobom, ako dosiahnuť náš cieľ, je použitie doplnku Maven's Surefire.

Rozšírený prehľad doplnku Surefire nájdete v tomto článku.

Pre ignorovanie zlyhania testu môžeme jednoducho nastaviť testFailureIgnore majetok do pravda:

 maven-surefire-plugin $ {maven.surefire.version} TestFail.java pravda 

Teraz sa pozrime na výstup z balíček príkaz:

[INFO] T E S T S [INFO] Spustenie testfail.TestFail [CHYBA] Spustenie testov: 1, zlyhania: 1, chyby: 0, preskočenie: 0, <<< PORUCHA! - v testfail.TestFail

Z výstupu prebiehajúcich testov vidíme TestFail trieda zlyháva. Ale pri pohľade ďalej vidíme, že správa BUILD SUCCESS je tiež tu a je zostavený súbor maven-0.0.1-SNAPSHOT.jar.

Podľa potreby môžeme testovanie vôbec preskočiť. Za to môžeme nahradiť testFailureIgnore riadok s:

pravda

Alebo nastavte argument príkazového riadku - Skúšky preskočiť. Týmto sa zostavia testovacie triedy, ale úplne sa preskočí vykonávanie testu.

5. Záver

V tomto článku sme sa naučili, ako zostaviť náš projekt s programom Maven bez ohľadu na výsledky testu. Prešli sme si praktickými príkladmi preskočenia zlyhávajúcich testov alebo úplného vylúčenia kompilácie testov.

Úplný kód tohto článku je ako obvykle k dispozícii na webe GitHub.


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