Programavimas

Įrenginių ir integracijos testai su „Maven“ ir „JUnit“ kategorijomis

Šis pavyzdys parodo, kaip padalyti vieneto ir integracijos testus naudojant „Maven“ ir „JUnit“ kategorijas.

Tai ypač naudinga esamiems bandomiesiems rinkiniams ir gali būti įgyvendinta per kelias minutes.

Mano ankstesnis įrašas parodė, kaip mes naudojame profilio profilį skirstydami vieneto ir integracijos testus.

//johndobie.blogspot.co.uk/2011/06/seperating-maven-unit-integration-tests.html

Tai buvo labai gerai perskaitytas įrašas, ir man patinka, kaip jame naudojami atskiri katalogai. Tačiau šis pavyzdys rodo daug paprastesnę techniką, kurią galima lengvai pritaikyti seniems bandymų rinkiniams.

Jis siūlo daugumą originalo pranašumų ir patogiau sėdi „Maven“ pasaulyje.

Pavyzdžio kodas yra čia.

svn co //designbycontract.googlecode.com/svn/trunk/examples/maven/categor ... „mvn clean install“ 

Nuo JUnit 4.8 galite nustatyti savo bandymų kategorijas. Tai leidžia pažymėti ir grupuoti testus.

Šis pavyzdys parodo, kaip lengva atskirti vienetą ir integravimo testą naudojant „@Catgegory“ anotaciją.

//kentbeck.github.com/junit/javadoc/latest/org/junit/experimental/categories/Categories.html

Pirmasis bandymo grupavimo, naudojant kategorijas, žingsnis yra žymeklio sąsajos sukūrimas.

Ši sąsaja bus naudojama pažymėti visus bandymus, kuriuos norite paleisti kaip integracijos testus.

viešoji sąsaja „IntegrationTest“ {} 

Pridėkite kategorijos komentarą prie savo testo klasės viršaus. Tai užima jūsų naujos sąsajos pavadinimą.

importuoti org.junit.experimental.categories.Category; „@Category (IntegrationTest.class)“ viešoji klasė „ExampleIntegrationTest“ {@Test public void longRunningServiceTest () meta išimtį {}} 

Kategorijos gali būti naudojamos pažymėti klases ar metodus. Tikrai, mano nuomone, turėtumėte pažymėti tik klasę.

Jei turite vieneto ir integracijos testus vienoje klasėje, tada padalykite jį.

Šio sprendimo grožis yra tas, kad daiktų vieneto bandymo pusėje niekas iš tikrųjų nesikeičia.

Paprasčiausiai pridedame tam tikrą konfigūraciją prie „maven surefire“ papildinio, kad būtų ignoruojami bet kokie integracijos testai.

 org.apache.maven.plugins maven-surefire-plugin 2.11. org.apache.maven.surefire surefire-junit47 2.12 ** / *. class com.test.annotation.type.IntegrationTest 

Yra 2 labai svarbios dalys. Pirmasis yra sukonfigūruoti patikimą, kad būtų pašalinti visi integravimo testai.

com.test.annotation.type.IntegrationTest 

„Surefire“ atliks visus jūsų testus, išskyrus tuos, kurie pažymėti kaip integracijos testas.

Kita svarbi dalis yra įsitikinti, kad patikimas papildinys naudoja teisingą „JUnit“ teikėją. Norint teisingai aptikti kategorijas, reikalingas JUnit47 teikėjas.

  org.apache.maven.surefire surefire-junit47 2.12 

Norėdami įsitikinti, kad tai veikia tinkamai, galime atlikti vieneto testus

mvn švarus testas 

Iš žemiau pateiktos išvesties matote, kad vykdomas vieneto testas, bet ne integracijos testas.

-------------------------------------------------- ----- BANDYMAI -------------------------------------------- ----------- Vykdomi „com.test.EmptyUnitTest“ bandymai vykdomi: 1, gedimai: 0, klaidos: 0, praleisti: 0, praėjęs laikas: 0 sek. Rezultatai: bandymai vykdomi: 1, gedimai: 0, Klaidos: 0, praleista: 0 [INFO] ---------------------------------------- -------------------------------- [INFO] PASTATYKITE SĖKM [[INFO] ---------- -------------------------------------------------- ------------ 

Vėlgi, tai labai paprasta konfigūruoti.

Mes naudojame standartinį „failsafe“ papildinį ir sukonfigūruojame jį tik vykdant integracijos testus.

 „maven-failsafe-plugin“ 2.12. org.apache.maven.surefire surefire-junit47 2.12 com.test.annotation.type.IntegrationTest integracijos testas ** / *. klasė 

Konfigūracijoje naudojamas standartinis vykdymo tikslas paleisti „Failsafe“ papildinį kūrimo integravimo ir bandymo etape.

Ši konfigūracija užtikrina, kad bus vykdomi tik integravimo testai.

com.test.annotation.type.IntegrationTest 

Ir vėl „JUnit“ teikėjas turi būti tinkamai sukonfigūruotas.

  org.apache.maven.surefire surefire-junit47 2.12 

Viskas!

Dabar galime vykdyti visą pastatą.

mvn clean install 

Šį kartą, taip pat vykdant vieneto bandymą, integracijos testai atliekami integravimo bandymo etape.

-------------------------------------------------- ----- BANDYMAI -------------------------------------------- ----------- Vykdomi „com.test“. AnotherEmptyIntegrationTest testai vykdomi: 1, Gedimai: 0, Klaidos: 0, Praleista: 0, Praėjęs laikas: 0,016 sek. Vykdomi „com.test.EmptyIntegrationTest“ bandymai: 1, Gedimai: 0, Klaidos: 0, Praleista: 0, Praėjęs laikas: 0 sek Rezultatai: Vykdyti bandymai: 2, Gedimai: 0, Klaidos: 0, Praleisti: 0 

Norėdami sužinoti, kaip lengva pridėti kodo aprėptį prie šio metodo, patikrinkite šią nuorodą.

//johndobie.blogspot.co.uk/2012/05/easy-unit-and-integration-code-coverage.html

Išsamesnį pavyzdį, kuriame naudojamas „Tomcat“ paleidimas ir duomenų bazė.

svn co //designbycontract.googlecode.com/svn/trunk/examples/maven/code-co ... mvn clean install -Ptomcat-embedded 

Jos remiasi šiuo pavyzdžiu

//johndobie.blogspot.com/2011/10/maven-integration-testing-and-spring.html

Šią istoriją „Vieneto ir integracijos bandymai su„ Maven “ir„ JUnit “kategorijomis“ iš pradžių paskelbė „JavaWorld“.

$config[zx-auto] not found$config[zx-overlay] not found