Építsen egy edényt Maven-lel és hagyja figyelmen kívül a teszt eredményeit

1. Bemutatkozás

Ez a gyors útmutató bemutatja, hogyan lehet egy edényt építeni Maven-nel, miközben figyelmen kívül hagyja a teszt eredményeit.

Alapértelmezés szerint Maven a projekt építése során automatikusan lefuttatja az egységteszteket. Azonban, ritkán fordul elő, hogy a tesztek kihagyhatók, és a teszt eredményeitől függetlenül fel kell építenünk a projektet.

2. A projekt felépítése

Készítsünk egy egyszerű projektet, amelyben egy kis tesztesetet is beillesztünk:

public class TestFail {@Test public void whenMessageAssigned_thenItIsNotNull () {String message = "hello there"; assertNotNull (üzenet); }}

Készítsünk egy jar fájlt a következő Maven parancs végrehajtásával:

mvn csomag

Ez a források összeállítását eredményezi, és a maven-0.0.1-SNAPSHOT.jar fájl a / target könyvtár alatt.

Most változtassunk egy kicsit a teszten, így a teszt sikertelen lesz.

@Test public void whenMessageAssigned_thenItIsNotNull () {String message = null; assertNotNull (üzenet); }

Ezúttal, amikor megpróbáljuk futtatni a mvn csomag parancs ismételten meghiúsul, az összeállítás sikertelen, és a maven-0.0.1-SNAPSHOT.jar fájl nem jön létre.

Ez azt jelenti, hogy, ha az alkalmazásunkban sikertelen teszt van, akkor csak akkor adhatunk meg futtatható fájlt, ha kijavítjuk a tesztet.

Tehát hogyan oldhatjuk meg ezt a problémát?

3. Maven-érvek

Maven saját érveivel foglalkozik ezzel a kérdéssel:

  • -Dmaven.test.failure.ignore = igazfigyelmen kívül hagyja a teszt végrehajtása során bekövetkező hibákat
  • -Dmaven.test.skip = igaz nem állítaná össze a teszteket
  • -fn, -méltóság a teszt eredményeitől függetlenül soha nem bukik meg az összeállításon

Futtassuk a mvn csomag -Dmaven.test.skip = true parancsot, és nézze meg az eredményeket:

[INFO] A tesztek kihagyásra kerülnek. [INFO] SIKER ÉPÍTÉSE

Ez azt jelenti, hogy a projekt a tesztek összeállítása nélkül épül fel.

Most futtassuk a mvn csomag -Dmaven.test.failure.ignore = true parancs:

[INFO] A tesztfail.TestFail futtatása [ERROR] whenMessageAssigned_thenItIsNotNull java.lang.AssertionError [INFO] SIKER ÉPÍTÉSE

Egységtesztünk állítással kudarcot vall, de az összeállítás sikeres.

Végül teszteljük a -fn, -méltóság opciók. Mindkét, csomag -fn és csomag -fae parancsok építik a befőttes üveg fájl és előállítja a SIKER ÉPÍTÉSE kimenet függetlenül whenMessageAssigned_thenItIsNotNull () teszt sikertelen.

Több modulos projekt esetén -fn opciót kell használni. -méltóság azzal a modullal folytatja, amelynek sikertelen tesztje van, de kihagyja az összes függő modult.

4. Maven Surefire bővítmény

Célunk elérésének másik kényelmes módja a Maven Surefire bővítményének használata.

A Surefire bővítmény részletes áttekintését lásd ebben a cikkben.

A teszt sikertelenségének figyelmen kívül hagyásához egyszerűen beállíthatjuk a testFailureIgnore tulajdonhoz igaz:

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

Most nézzük meg a csomag parancs:

[INFO] T E S T S [INFO] A tesztfuttatás futtatása. TestFail [ERROR] Futtatott tesztek: 1, hibák: 1, hibák: 0, kihagyva: 0, <<< HIBA! - a testfail.TestFail

A futó tesztek kimenetéből láthatjuk a TestFail osztály megbukik. De tovább nézve azt látjuk, hogy a BUILD SUCCESS üzenet is ott van, és a maven-0.0.1-SNAPSHOT.jar fájl összeáll.

Szükségünktől függően egyáltalán kihagyhatjuk a tesztek futtatását. Erre cserélhetjük a testFailureIgnore összhangban:

igaz

Vagy állítsa be a parancssori argumentumot -DskipTests. Ez összeállítja a tesztosztályokat, de a teszt végrehajtását teljesen kihagyja.

5. Következtetés

Ebben a cikkben megtanultuk, hogyan építsük fel projektünket Maven-nel, a teszt eredményeitől függetlenül. Végignéztük a sikertelen tesztek kihagyásának vagy a tesztek összeállításának teljes kizárásának gyakorlati példáit.

Szokás szerint a cikk teljes kódja elérhető a GitHub projekten.