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:

  1. Hagyja figyelmen kívül a teszteket
  2. Tesztek összeállítása
  3. 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.