É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.