Yksikkötestikoodin kattavuuden kerääminen on helppoa, koska kaikki yleiset työkalut on suunniteltu siihen.
Tässä artikkelissa kerrotaan, kuinka voit lisätä yksikötestin kattavuuden Maven-sovellukseesi 10 minuutissa.
Näytämme kuinka helppoa se on erinomainen Jacoco-koodikirjastokirjasto.
Esimerkkejä
Kaikki esimerkit ovat peräisin tästä artikkelista.
//johndobie.blogspot.com/2011/11/test-doubles-with-mockito.html
Voit tarkistaa ne täältä
svn co //designbycontract.googlecode.com/svn/trunk/examples/testing/test -...
Kun Maven 3 on asennettu, voit suorittaa ne tällä komennolla.
mvn puhdas paketti
Mikä on Jacoco
Jacoco on ilmainen Java-koodikirjastokirjasto. //www.eclemma.org/jacoco/
Käytän sitä, koska se on hyvin helppo lisätä kaiken tyyppisiin koontiversioihin, mukaan lukien ANT ja Maven, ja se on myös erittäin helppo lisätä Java-säilöihin tai erilliseen JVM: ään.
Kuinka se toimii?
Jacoco käyttää tavallista JVM-työkalurajapintaa. //java.sun.com/developer/technicalArticles/J2SE/jvm_ti/
Yksinkertaisesti sanottuna liität Jacoco-agentin JVM: ään, kun se alkaa. Se esiteltiin JDK 5: ssä JVM: ien tarkkailemiseksi ja profiloimiseksi ja Java-luokkien dynaamisen muokkaamiseksi ladattaessa.
Aina kun luokka ladataan, Jacoco voi instrumentoida luokan, jotta se voi nähdä, milloin luokkaa kutsutaan ja mitä rivejä kutsutaan. Näin se kerää kattavuustilastoja. Tämä kaikki tapahtuu lennossa.
Tulostiedosto luodaan oletusarvoisesti, kun JVM lopetetaan.
Voit myös suorittaa agentin palvelintilassa, jonka avulla voit käynnistää tuloksen.
Kuinka liität agentin JVM: ään?
Tämä on hyvin yksinkertainen prosessi. Sinun on määritettävä, missä jacoco-purkki sijaitsee, ja sitten välittää joitain parametreja määritelläksesi, miten agentti suoritetaan.
-javaagent: [oma polkusi / jacocoagent.jar = [vaihtoehto1] = [arvo1], [vaihtoehto2] = [arvo2]
Tyypillinen juoksu saattaa näyttää tältä
-javaagent: jacoco.jar = destfile = $ {sonar.jacoco.itReportPath}, sisältää = com.dbc. *
Täydellinen viite löytyy täältä.
//www.eclemma.org/jacoco/trunk/doc/agent.html
Jacoco-tuki Mavenille
Maven-laajennuksen asiakirjat määritellään tässä.
//www.eclemma.org/jacoco/trunk/doc/maven.html
Ensin meidän on lisättävä itse laajennus.
org.jacoco jacoco-maven-plugin 0.5.5.201112152213
Voimme sitten määrittää, missä Jacoco-raportit tuotetaan.
$ {basedir} /target/coverage-reports/jacoco-unit.exec $ {basedir} /target/coverage-reports/jacoco-unit.exec
Lopuksi meidän on määriteltävä seuraavat 2 suoritusta, jotta agentti suoritetaan ennen testien suorittamista, ja myös sen varmistamiseksi, että jacoco-raporttitehtävä suoritetaan, kun paketti suoritetaan.
jacoco-alusta valmistelu-agentti jacoco-site -pakettiraportti
Kaikki tämä yhdessä näkyy tässä
org.jacoco jacoco-maven-plugin 0.5.5.201112152213 $ {basedir} /target/coverage-reports/jacoco-unit.exec $ {basedir} /target/coverage-reports/jacoco-unit.exec jacoco-alusta valmistelu-agentti jacoco -sivustopakettiraportti org.apache.maven.plugins maven-compiler-plugin 1.5 1.5
Suorita seuraava komento suorittaaksesi esimerkkejä.
mvn puhdas paketti
Tulokset julkaistaan / target / site / jacoco.
Tämän tarinan, "Unit Test Code Coverage With Maven And Jacoco", julkaisi alun perin JavaWorld.