A tesztek kihagyása Maven-nel
1. Bemutatkozás
A tesztek kihagyása gyakran rossz ötlet. Vannak azonban olyan helyzetek, amikor ez hasznos lehet - talán amikor új kódot fejlesztünk, és olyan köztes buildeket szeretnénk futtatni, amelyekben a tesztek nem felelnek meg vagy fordítanak.
Csak ilyen helyzetekben hagyhatjuk ki a teszteket, hogy elkerüljük az összeállításuk és futtatásuk költségeit. Természetesen vegye figyelembe, hogy a tesztek elmaradása rossz kódolási gyakorlathoz vezethet.
Ebben a gyors bemutatóban felfedezzük az összes lehetséges parancs és lehetőség a tesztek kihagyására a Maven használatával.
2. Maven életciklusa
Mielőtt belekezdenénk a tesztek kihagyásának részleteibe, meg kell értenünk, amikor a teszteket összeállítják vagy lefuttatják. A Maven céljairól és fázisairól szóló cikkünkben mélyebben belemerülünk a Maven életciklusának koncepciójába, de e cikk alkalmazásában fontos tudni, hogy Maven:
- Hagyja figyelmen kívül a teszteket
- Tesztek összeállítása
- Futtasson teszteket
Példáinkban a csomag szakasz, amely magában foglalja a tesztek összeállítását és futtatását. Az oktatóanyagban feltárt lehetőségek a Maven Surefire bővítményhez tartoznak.
3. A parancssori jelzők használata
3.1. A teszt összeállításának kihagyása
Először nézzünk meg egy tesztet, amely nem állít össze:
@ Teszt nyilvános érvényteleníti ezt a DoesntCompile () {baeldung; }
Amikor a parancssori parancsot futtatjuk:
mvn csomag
Hibát kapunk:
[INFO] ----------------------------------------------- -------------- [HIBA] ÖSSZEÁLLÍTÁSI HIBA: [INFO] --------------------------- ---------------------------------- [HIBA] / Felhasználók / baeldung / skip-tests / src / test / java / com / antmordel / skiptests / PowServiceTest.java: [11,9] nem nyilatkozat [INFO] 1 hiba
Ezért vizsgáljuk meg hogyan lehet kihagyni az összeállítási szakaszt a teszt forrásaihoz. Mavenben használhatjuk a maven.test.skip zászló:
mvn -Dmaven.test.skip csomag
Ennek eredményeként a tesztforrásokat nem állítják össze, ezért nem hajtják végre.
3.2. A teszt végrehajtásának kihagyása
Második lehetőségként nézzük meg, hogyan összeállíthatjuk a tesztmappát, de kihagyjuk a futtatási folyamatot. Ez hasznos azokban az esetekben, amikor nem módosítjuk a módszerek vagy osztályok aláírását, de megváltoztattuk az üzleti logikát, és ennek eredményeként megsértettük a teszteket. Vegyünk egy olyan kitalált tesztesetet, mint az alábbi, amely mindig kudarcot vall:
@Test public void thisTestFails () {fail ("Ez egy sikertelen teszteset"); }
Mivel belefoglaltuk az állítást kudarc (), ha futtatjuk a csomag fázisban az összeállítás meghiúsul a hibával:
[ERROR] Hibák: [ERROR] PowServiceTest.thisTestFails: 16 Ez egy sikertelen teszteset [INFO] [ERROR] Futtatott tesztek: 2, hibák: 1, hibák: 0, kihagyott: 0
Képzeljük el, hogy ki akarjuk hagyni a tesztek futtatását, de mégis össze akarjuk állítani őket. Ebben az esetben használhatjuk a -DskipTests zászló:
mvn -DskipTests csomag
és a csomagolási szakasz sikeres lesz. A Mavenben van egy dedikált plugin is az integrációs tesztek futtatásához, az úgynevezett maven failsafe plugin. A -DskipTests kihagyja az egység tesztek (surefire) és az integrációs tesztek (failsafe) végrehajtását. Annak érdekében, hogy csak átugorjuk az integrációs teszteket, átadhatjuk a -DskipITs rendszer tulajdonság.
Végül érdemes megemlíteni, hogy a már elavult zászló -Dmaven.test.skip.exec a tesztosztályokat is összeállítja, de nem fogja futtatni.
4. A Maven Configuration használata
Abban az esetben, ha ki kell zárnunk a tesztek összeállítását vagy futtatását hosszabb ideig, módosíthatjuk a pom.xml fájlt a megfelelő konfiguráció beillesztése érdekében.
4.1. A teszt összeállításának kihagyása
Ahogy az előző szakaszban tettük, vizsgáljuk meg, hogyan elkerülhetjük az összeállítást a tesztmappát. Ebben az esetben a pom.xml fájl. Adjuk hozzá a következő tulajdonságot:
igaz
Tartsd észben, hogy felülírhatjuk ezt az értéket az ellenkező zászló hozzáadásával a parancssorba:
mvn -Dmaven.test.skip = hamis csomag
4.2. A teszt végrehajtásának kihagyása
Ismét második lépésként vizsgáljuk meg, hogyan felépíthetjük a teszt mappát, de kihagyjuk a teszt végrehajtását a Maven konfigurációt használva. Ehhez konfigurálnunk kell a Maven Surefire bővítményt egy tulajdonsággal:
true org.apache.maven.plugins maven-surefire-plugin 2.22.1 $ {tests.skip}
A Maven ingatlan tesztek.ugrás egy egyéni tulajdonság, amelyet korábban definiáltunk. Ezért felülírhatjuk, ha végre akarjuk hajtani a teszteket:
mvn -Dtests.skip = hamis csomag
4. Következtetés
Ebben a gyors bemutatóban megvizsgáltuk a Maven által kínált összes alternatívát a tesztek összeállításának és / vagy futtatásának kihagyása érdekében.
Végignéztük a Maven parancssori és a Maven konfigurációs lehetőségeket.