Š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“.