Integrációs tesztek maven
Összegzés: bár Maven olyan eszköz, amely egységesíti a projekt szerkezete és összeszerelés, de nem sikerült az összeomlás különféle standardizált tesztek. SCHA elemzik járatok tekintetében.
Akkor miért van az, hogy a Maven nem tud megbirkózni a szabványosítási vizsgálatok, mert:
- Végre a vizsgálati fázisban
- Hazugság src / test könyvtárban
- A nevét a vizsgálati osztály szót tartalmazó teszt
-
- Vypolnayutsya integrációs-tesztfázisban
- Hazugság src / vizsgálat
- Nevük kell betűket jelölő IT sobsno IntegrationTests.
Problémák tényleg ezzel egy pár:
integrációs-teszt fázisban hajtjuk végre, miután az egység tesztek, ami azt jelenti, hogy nem külön futnak. Minden alkalommal, amikor fut integrációs teszteket moduláris. Általában azonban szeretnénk futtatni a unit tesztek egyszer, majd futtatni külön integráció. Megy a unit tesztek nem végzik el, meg kell adni őket -DskipTests. akkor kiderül, hogy az integráció vizsgálatokat még nem indult el, mert a bővítmény hibatűrő egy holtbiztos, aranyér kezdődik profilok létrehozását, és végül kezd úgy tűnik, hogy mindez túl nehéz. By the way, ezért is fontos, hogy a teszteket külön kiemelve:
A tervezők gyorsan megkapják a „zöld” fidbek és folytatja a munkát. Ez az egység tesztek gyorsan ad az alap választ.
Nem moduláris tesztek függ a környezettől, és ezért esik. Amennyiben a vizsgálatok estek, továbbra is szükség van, hogy megértsük a környezet miatt van, vagy nagyon megtört logika.
Integrációs tesztek lassú, attól függően, hogy mennyi ideig lehet futtatni minden követ el, egyszer egy nap, stb Ők is lehet szakítani kisebb csoportokra tesztek, például a fő füst teszteket először, majd a regresszió, majd elfogadás, akkor bármilyen terhelés stb Ezek könnyen megoszthatja, mert pontosan tudja, mit tört. És azt is tudjuk futtatni a teszteket külön meghatározott csoport, és nem várja meg, hogy telt 04:00 minden.
Mi is szeretnénk futtatni ugyanazt a rendszert többször is. Például mi őket kergetni a jelenlegi elkövetni, majd egy másik az a tény, hogy ő egy hete, hogy lássuk a különbséget az eredményeket.
A rendszer vizsgálata gyakran kell készíteni a környezetre, mielőtt futtatná őket.
Normál hibatűrő használ src / test könyvtárban. és ritkán kell helyezni és az egységek tesztek, és a források ugyanazokat a csomagokat.
Az integrációs teszt fázisban indul a telepítés előtt minden egyes alkalommal. Nem akarjuk, hogy lassabb integrációs tesztek, valahányszor a beállított leletek a helyi tárolóból.
Sajnos már csak moduláris, integrációs tesztek a legtöbb fejlesztő és a „mit QA”. Valójában azonban a vizsgálatok között legalább moduláris rendszer és alkatrész méretétől függően. Van is egy funkcionális és nem funkcionális tesztelés, stb További információk találhatók a vizsgált fajok a névadó cikket. De a legfontosabb dolog - szeretnénk megosztani az összes ilyen teszteket. Bizonyos, hogy növelni kell a teljes alkalmazás, mások - csak egy része, a harmadik általában egy osztály elegendő. Azonban Maven nem tesz különbséget köztük és nem osztják meg, hogy van egy moduláris vagy integráció.
Általában egy kis reflexió Priti arra a következtetésre, hogy ha egy szabványos mechanizmust Maven olyan tökéletlen, és még mindig nem tudja az összes szükséges, hogy tudunk mozogni tőle. Ehelyett azt javasoljuk, hogy használja a jó öreg holtbiztos plugin. Igen, ez a plugin bebörtönzik írásban egység vizsgálatok, de ezek valójában nem különbözik a „nem moduláris” - ugyanaz a JUnit / testng leírja minden a logika (bár itt is lehetővé teszi, hogy mindenféle BDD keretek navrode JBehave de nem a saját beszédét. ).
Tehát így fog kinézni. Az egyes típusú vizsgálat fogunk létrehozni a) profil b) forrás könyvtár és a források. Maven van konfigurálva a következő:
Megjegyezzük, hogy egy viszonylag kis darab konfigurációs leírtuk 3 típusú vizsgálatok, és ezek mind a különböző könyvtárak:
Moduláris: MVN teszt
Komponens: MVN teszt -Pcomponent-teszt
Rendszer: MVN teszt -Psystem-teszt
A könyvtár szerkezete akkor ez:
Igaz rendszer tesztelése általában értelme kiosztani külön modul, az atomok és a projektek.
Az egyetlen dolog, amit slukavil: integrációs tesztelési fázisban van osztva több lépésben, és ez lehetővé teszi számunkra, hogy emelje az első környezetet, majd megállítani. Surefire megközelítése ez nem, akkor kézzel kell elindítani környezet egyértelműen meghatározott parancsokat. azonban:
Ha nem vagyunk a teljesen kibontott környezet, ez nem mindig lehetséges, hogy automatizálják írása nélkül script, ami azt jelenti, hogy a legtöbb esetben még meg kell húzni a kezét
Nehézségi beállításán különféle vizsgálatok kiterjed bonyolítja a dob egy kandúr: Start
mert rendszer tesztelése általában kivenni külön modulok vagy projektek, akkor is jól használható integrációs teszt fázisban egyetlen, azaz a vizsgálatokat.
De ha igazán akar egy kényelmes módja, hogy automatizálják a telepítési környezet, akkor lehet jobb beállítani az integrációs teszt fázisban erre.
JUnit kategóriák, testng Groups
A probléma okát helyesen, de nem oldják meg a profilokat használják helytelenül, mert:
Most lehetetlen összeállítani futtatni mindkét egység és integrációs tesztek, és ahogy egy build szkript a leggyakoribb, a szerelvényt a build szerveren kell futtatni a teszteket, és az oka, hogy szeretnénk futtatni integrációs tesztek futtatása nélkül unit tesztek csak egy: a kód nem probléma, nem végez integrációs tesztek, mert már készített egy rossz teszt kit, így nem mozdult rá az alap sémafrissítésre vagy elkészítették a rossz adathalmaz dbunit. De ha integrációs tesztek talált egy valódi hibát a kódban, hogy azok semmilyen esetben nem lehet futtatni anélkül unit tesztek, mert egyrészt van egy nagy probléma a unit tesztek, azok nem teljesek, mert proshlyapili hiba, a második eljárás maga javítsa ki a hibát, ha agilis hogy először be kell írni egység vizsgálatok azt mutatják, hogy van egy hiba, és csak azután, hogy a korrekciókat a kódot. A helyzet, ha azt akarjuk, hogy ezt az egységet vizsgálat megkezdése nélkül az integráció igen, ez az igazi, és én megmutatom alábbiakban, hogyan lehet megkerülni azt.
Nem világos, hogyan fog kinézni az IDE, a javasolt megközelítés, akkor egyúttal ellenőrzése alatt a fordító és egyéb érvényesítő csak egy mappát a vizsgálatokat, nézzük módosítsa a kódot, és unit tesztek és integrációs tesztek azt látjuk, hogy a kód már nem állítja össze.
Most obyno raznoshu egység és integrációs tesztek a különböző fázisok:
Integrációs tesztek teszünk csak paekt integráció, és ne rántsa az egység tesztelési fázisban, mint a ténylegesen és fordítva. Mint látható, alapértelmezés szerint a unit tesztek mindig fut, amely úgy tűnik, hogy logikus, de nem tudjuk kihagyni őket abban, hogy tulajdon skip.unittest igaz, ha muszáj.
Ui Amint láthatjuk óta használják kung fu indítani egy és ugyanazon bővítmény több fázisban, így könnyen elképzelhető, hogy mi is van nem csak kettő, hanem még hosszabb tesztelési fázisban a projekt, mint a készülék, az integráció, a funkcionális, elfogadás egyszerűen konfigurálja a modult futtatni különböző fázisok.
Ha mindegy lenne kívánatos, hogy megoldja a problémát a profilokon, és semmi mást, például kifejezetten a projektben, bármilyen okból, ésszerű, hogy jobban megéri, hogy manipulálják az elem „magában foglalja” helyett az elemek testResources "és„testSourceDirectory”, mert előttünk kezdetben probléma amely megvizsgálja, hogy futni, az elem „magában foglalja az” ad közvetlen és egyértelmű választ arra a kérdésre, anélkül, hogy zavarnák a IDE fordító teszt kód ellenőrzése, és ellenőrzi a források érvényesítő teszt eszközök.