Programmēšana

Vienību un integrācijas testi ar Maven un JUnit kategorijām

Šis piemērs parāda, kā sadalīt vienību un integrācijas testus, izmantojot Maven un JUnit kategorijas.

Tas ir īpaši noderīgi esošajiem testa komplektiem, un to var ieviest dažu minūšu laikā.

Mans iepriekšējais ziņojums parādīja, kā mēs izmantojam savainotu profilu, lai sadalītu vienības un integrācijas testus.

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

Šis ir bijis ļoti labi lasīts ieraksts, un man patīk, kā tajā tiek izmantoti atsevišķi direktoriji. Tomēr šis piemērs parāda daudz vienkāršāku paņēmienu, kuru var viegli izmantot mantotajiem testa komplektiem.

Tas piedāvā lielāko daļu oriģināla priekšrocību un ērtāk sēž Mavenas pasaulē.

Piemēra kods ir šeit.

svn co //designbycontract.googlecode.com/svn/trunk/examples/maven/categor ... mvn tīra instalēšana 

Sākot ar JUnit 4.8, jūs varat noteikt savas testu kategorijas. Tas ļauj iezīmēt un grupēt testus.

Šis piemērs parāda, cik viegli ir atdalīt vienību un integrācijas testu, izmantojot @Catgegory anotāciju.

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

Pirmais solis testa grupēšanā, izmantojot kategorijas, ir marķiera saskarnes izveide.

Šī saskarne tiks izmantota, lai atzīmētu visus testus, kurus vēlaties izpildīt kā integrācijas testus.

publiskā saskarne IntegrationTest {} 

Pievienojiet kategorijas anotāciju testa klases augšdaļā. Tas aizņem jūsu jaunās saskarnes nosaukumu.

importēt org.junit.experimental.categories.Category; @Category (IntegrationTest.class) publiskā klase ExampleIntegrationTest {@Test public void longRunningServiceTest () izmet izņēmumu {}} 

Kategorijas var izmantot, lai atzīmētu klases vai metodes. Tiešām, manuprāt, jums jāatzīmē tikai klase.

Ja jums ir gan vienības, gan integrācijas testi vienā klasē, tad sadaliet to.

Šī risinājuma skaistums ir tāds, ka lietas vienības testa pusē nekas īsti nemainās.

Mēs vienkārši pievienojam zināmu konfigurāciju Maven surefire spraudnim, lai tas ignorētu visus integrācijas testus.

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

Ir 2 ļoti svarīgas daļas. Pirmais ir konfigurēt drošu pārbaudi, lai izslēgtu visus integrācijas testus.

com.test.annotation.type.IntegrationTest 

Surefire veiks visus jūsu testus, izņemot tos, kas atzīmēti kā integrācijas tests.

Otra svarīgā daļa ir pārliecināties, vai drošais spraudnis izmanto pareizo JUnit nodrošinātāju. JUnit47 nodrošinātājs ir nepieciešams, lai pareizi noteiktu kategorijas.

  org.apache.maven.surefire surefire-junit47 2.12 

Lai pārliecinātos, ka tas darbojas pareizi, mēs varam veikt vienības testus

mvn tīrs tests 

Zemāk esošajā izvadē var redzēt, ka tiek izpildīts vienības tests, bet ne integrācijas tests.

-------------------------------------------------- ----- TESTI -------------------------------------------- ----------- Notiek com.test.EmptyUnitTest palaistie testi: 1, Kļūmes: 0, Kļūdas: 0, Izlaistie: 0, Pagājušais laiks: 0 s Rezultāti: Testi veikti: 1, Kļūmes: 0, Kļūdas: 0, izlaista: 0 [INFO] ---------------------------------------- -------------------------------- [INFO] VEICINĀT panākumus [INFO] ---------- -------------------------------------------------- ------------ 

Atkal konfigurācija tam ir ļoti vienkārša.

Mēs izmantojam standarta failsafe spraudni un konfigurējam to, lai palaistu tikai integrācijas testus.

 maven-failsafe-plugin 2.12 org.apache.maven.surefire surefire-junit47 2.12 com.test.annotation.type.IntegrationTest integrācijas tests ** / *. klase 

Konfigurācija izmanto standarta izpildes mērķi, lai palaistu failsafe spraudni būvēšanas integrācijas testa fāzē.

Šī konfigurācija nodrošina tikai integrācijas testu izpildi.

com.test.annotation.type.IntegrationTest 

Un atkal JUnit nodrošinātājam jābūt pareizi konfigurētam.

  org.apache.maven.surefire surefire-junit47 2.12 

Tieši tā!

Tagad mēs varam vadīt visu celtni.

mvn tīra instalēšana 

Šoreiz, kā arī vienības testa laikā, integrācijas testi tiek veikti integrācijas testa posmā.

-------------------------------------------------- ----- TESTI -------------------------------------------- ----------- Darbojas com.test.AnotherEmptyIntegrationTest veikti testi: 1, kļūmes: 0, kļūdas: 0, izlaists: 0, pagājis laiks: 0,016 sek. Darbojas com.test.EmptyIntegrationTest testi: 1, Kļūdas: 0, Kļūdas: 0, Izlaists: 0, Pagājušais laiks: 0 sek 

Lai uzzinātu, cik viegli šai metodei ir pievienot kodu pārklājumu, skatiet šo saiti.

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

Lai iegūtu pilnīgāku piemēru, kurā tiek izmantots Tomcat palaišana un datu bāze.

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

Tās pamatā ir šis piemērs

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

Šo stāstu "Vienību un integrācijas testi ar Maven un JUnit kategorijām" sākotnēji publicēja JavaWorld.

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