Kódlefedettség engedélyezése Ant parancsfájlból
Ha ellenőrizni kívánja, hogy az éppen összeépített kód a megadott
kódlefedettségi elfogadhatósági feltételeknek megfelel-e, akkor
engedélyezheti a kódlefedettséget Ant parancsfájlból. Ehhez a
következőket kell tennie:
A kódlefedettségi eredményeket a kezelőfelületen is
megtekintheti..
Ant parancsfájl beállítása a kódlefedettség engedélyezéshez
Ha Ant parancsfájlt kíván konfigurálni a kódlefedettség
engedélyezéséhez, akkor adja hozzá a következőket a CLASSPATH
környezeti változóhoz:
<install_dir>/plugins/com.ibm.rational.llc.engine_1.0.0.<version_number>
és határozzon meg egy új feladatot az összeépítési fájlban. Például:
<taskdef name="instrument"
classname="com.ibm.rational.llc.engine.instrumentation.anttask.InstrumentationTask"
classpath="${install_dir}/plugins/com.ibm.rational.llc.engine_1.0.0.<version_number>"/>
A felkészítési feladat formátuma a következő:
<instrument buildPath="" baseLineFile="" saveBackups="" outputDir=""/>
ahol:
- buildPath:
- Azokat a fájlokat határozza meg, amelyekkel kapcsolatosan
kódlefedettségi adatok kerülnek összegyűjtésre. Az összeépítési útvonal
osztályfájl nevére, jar fájl nevére és könyvtárnévre egyaránt
hivatkozhat. Ugyanúgy határozható meg, mint az Ant parancsfájlokban
használt bármely más útvonal-hivatkozás.
- baseLineFile:
- Az alapsor fájl tárolási útvonalát adja meg. Az alapsor fájl az a
fájl, amellyel a felkészített kód összehasonlításra kerül és
kódlefedettségi statisztika előállításra kerül. A jelentéskészítési Ant
feladat bemenetéül is szolgál.
- saveBackups:
- Megadja, hogy az eredeti osztály és jar fájlokat át kell-e *.bak
kiterjesztésűvé nevezni. A saveBackups igaz értékűre állítása
előállítja a biztonsági mentési fájlokat; a saveBackups hamis
értékűre állítása az eredetei fájlok felülírását (és ezért
elveszését) eredményezi.
Megjegyzés: a saveBackups használata nem kötelező és
alapértelmezett értéke hamis.
- outputDir:
- Azt a helyet adja meg, ahol a felkészített fájlok tárolásra
fognak kerülni. Alapértelmezésben a felkészített fájlok ugyanott kerülnek
tárolásra, mint a felkészítés alatt állók.
1. példa
A következő példában kódlefedettségi adatok kerülnek összegyűjtésre a
bin/ könyvtárban található összes fájlról, az alapsor fájl a
blfile.coveragedata helyen tárolásra, a fájlokról nem készül
biztonsági mentés és a felkészített fájlok coverageData_files
helyen kerülnek tárolásra.
<instrument saveBackups="false" baseLineFile="blfile.coveragedata" buildPath="bin/" outputDir="coverageData_files"/>
2. példa
A következő példában kódlefedettségi adatok kerülnek összegyűjtésre a
bin könyvtárban (hivatkozása: build.Dir) található összes
fájlról, az alapsor fájl a blfile.coveragedata helyen kerül tárolásra és minden fájlról
biztonsági mentés kerül előállításra.
<path id="build.Dir">
<pathelement location="bin"/>
</path>
<instrument saveBackups="true" baseLineFile="blfile.coveragedata" buildPathRef="build.Dir" />
3. példa
A következő példában kódlefedettségi adatok kerülnek összegyűjtésre a
bin könyvtárban található összes fájlról, az alapsor fájl a
blfile.coveragedata helyen kerül tárolásra és minden fájlról
biztonsági mentés kerül előállításra.
<instrument saveBackups="true" baseLineFile="blfile.coveragedata">
<buildPath>
<pathelement location="bin"/>
</buildPath>
</instrument>
4. példa
A következő példában a kódlefedettség a bin/ összes olyan
alkönyvtára esetében engedélyezett, amelynek nevében a com
kifejezés szerepel, és ezen alkönyvtárakban a nevükben a Test
kifejezést tartalmazó fájlok kizárásra kerülnek. Minden kódlefedettségi
elemzésen áteső fájlról biztonsági mentés készül és az alapsor fájl
a blfile.coveragedata helyen kerül tárolásra.
<instrument saveBackups="true" baseLineFile="blfile.coveragedata">
<buildPath>
<fileset dir="bin">
<exclude name="**/*Test*"/> <include name="**/*com*/*">
</fileset>
</buildPath>
</instrument>
5. példa
A következő példában a kódlefedettség a bin/ könyvtárban lévő
összes fájl esetében engedélyezett, a bin alkönyvtáraiban található azon
fájlokat kivéve, amelyek neve a Test kifejezés és a bin2/ szerepel.
Minden kódlefedettségi elemzésen áteső fájlról biztonsági mentés készül és
az alapsor fájl a blfile.coveragedata helyen kerül tárolásra.
<instrument saveBackups="true" baseLineFile="blfile.coveragedata">
<buildPath>
<fileset dir="bin">
<exclude name="**/*Test*"/>
</fileset>
</buildPath>
<buildPath>
<pathelement location="bin2"/>
</buildPath>
</instrument>
Az Ant parancsfájl futtatása
Miután az Ant parancsfájlt a kódlefedettség engedélyezéséhez
konfigurálta, futtathatja azt akár a parancssorból, akár a
kezelőfelületről.
Futtatás a parancssorból
Az Ant parancsfájl futtatásához a parancssorból tegye a következőket:
- Állítsa be a JAVA_HOME környezeti változót arra a könyvtárra,
ahol a JDK telepítve van.
- Győződjön meg róla, hogy a CLASSPATH környezeti változó a probekit.jar
fájl teljes útvonalát és fájlnevét tartalmazza. A probekit.jar fájl terméktelepítése
plugins mappájának legmagasabb verziószámú és legfrissebb időpecsétű
org.eclipse.hyades.probekit almappájában található.
- Győződjön meg róla, hogy a környezeti változó tartalmazza a JAVA_HOME
változót (Java telepítésének elérési útja, például a JAVA_HOME/bin/java
érvényes).
- Győződjön meg róla, hogy a PATH környezeti változó a
platformjának megfelelő org.eclipse.hyades.probekit almappa teljes
elérési útját tartalmazza. Például:
- Windows platformon:
<telepítési_könyvtár>\plugins\org.eclipse.hyades.probekit_<verzió>\os\win32\x86
- Linux platformon:
<telepítési_könyvtár>/plugins/org.eclipse.hyades.probekit_<verzió>/os/linux/x86
- A LLC_PLUGIN változóhoz állítsa be a plugins mappa elérési útját.
set LLC_PLUGIN=<telepítési_könyvtár>\plugins
Példa
ant
-lib=<telepítési_könyvtár>\plugins\org.eclipse.hyades.probekit_<verzió>\probekit.jar
myTarget
Futtatás a kezelőfelületről
Az Ant parancsfájl futtatásához a kezelőfelületről tegye a
következőket:
- Válassza ki az összeépítési fájlt
- Kattintson a jobb egérgombbal, majd válassza az előugró menü
Futtatás másként > Ant összeépítés.. menüpontját
- Válassza ki az Osztályútvonal lapot
- Válasza ki a Felhasználói bejegyzések lehetőséget
- Kattintson a Külső JAR fájlok hozzáadása... lehetőségre
- Adja hozzá az
<telepítési_könyvtár>\plugins\org.eclipse.hyades.probekit_<verzió>\probekit.jar
fájlt a legmagasabb verziószámú és legfrissebb időpecsétű
org.eclipse.hyades.probekit bedolgozó almappából származó CLASSPATH
változóhoz
- Válassza ki a Célok lapot
- Jelölje ki a kívánt célokat
- Válassza ki a Környezetek lapot
- Kattintson az Új... gombra
- A Környezeti változó párbeszédablakban, a Név mezőbe írja be az
LLC_Plugin kifejezést, az érték mezőbe pedig írj be az
LLC_PLUGIN útvonalát (például: <telepítési_könyvtár>\plugins)
- Kattintson az OK gombra
- Kattintson az Új... gombra
- A Környezeti változó párbeszédablakban, a Név mezőbe írja be az
PATH kifejezést, az érték mezőbe pedig írj be a következőt:
<telepítési_könyvtár>\plugins\org.eclipse.hyades.probekit_<verzió>\os\win32\x86
- Kattintson az OK gombra
- Kattintson a Futtatás lehetőségre
A kódlefedettségi statisztika előállítása
Győződjön meg róla, hogy az osztályútvonal tartalmazza a következőket:
<telepítési_könyvtár>\plugins\com.ibm.rational.llc.engine_1.0.0.<verziószám>
Ha kódlefedettségi statisztikákat a parancssorból szeretne
előállítani, akkor a kód feletti könyvtárból futtassa a következőket:
java -Dcoverage.out.file=C:\coverage_report\coverage_data.coveragedata com.ibm.rational.llc.example
Megjegyzés: Elképzelhető, hogy a Java környezetet be kell állítania,
hogy az a terméktelepítésével azonos legyen.
Kódlefedettség jelentések előállítása
Ha jelentést Ant segítségével kíván előállítani, akkor tegye a következőket:
Töltse le a BIRT
futási jelentés alrendszer programot és bontsa ki annak tartalmát. Állítsa
be a következő környezeti változókat:
- CLASSPATH - a következőre mutasson: org.eclipse.equinox.common_<verziószám>.jar
- LLC_COMMON_PLUGIN - a következőre mutasson: com.ibm.rational.llc.common_1.0.0.<verziószám>
- LLC_REPORT_PLUGIN - a következőre mutasson: com.ibm.rational.llc.report.birt_1.0.0.<verziószám>
- BIRT_HOME - A BIRT futási környezet ReportEngine könyvtárára mutasson
Például,
<path id="lib.path">
<pathelement location="${env.LLC_COMMON_PLUGIN}"/>
<pathelement location="${env.LLC_REPORT_PLUGIN}"/>
<fileset dir="${env.BIRT_HOME}/lib" includes="*.jar"/>
</path>
Határozzon meg egy új feladatot az összeépítési fájlban a kódlefedettség
jelentés előállításához, például:
<taskdef name="code-coverage-report"
classname="com.ibm.rational.llc.report.birt.adapters.ant.ReportGenerationTask"
classpathref="lib.path"/>
A kódlefedettség jelentés feladat formátuma a következő:
<code-coverage-report outputDir="" coverageDataFile=""
baseLineFiles=""> <filters> <filter type="" value=""/>
</filters> <configurations> <configuration name=""
value=""/> </configurations> </code-coverage-report>
ahol:
- outputDir:
- Azt a helyet adja meg, ahol a jelentés eredménye tárolásra fog kerülni.
- coverageDataFile:
- Legalább egy lefedettségi adatfájlt ad meg, amelyről a
jelentést elő kell állítani. Ugyanúgy határozható meg, mint az Ant
parancsfájlokban használt bármely más útvonal-hivatkozás.
- baseLineFiles:
- A felkészítési feladat részeként előállított alapsor fájl(oka)t
ad meg. Ugyanúgy határozható meg, mint az Ant parancsfájlokban használt
bármely más útvonal-hivatkozás.
- filters:
- Elhagyható: A jelentési eredmények szűrésére használják.
- filter:
- type: A jelentésre alkalmazandó szűrő típusa.
- value: A jelentésre alkalmazandó szűrő értéke.
- Elérhető szűrők:
- Sor lefedettségi küszöbérték: A sor lefedettségi jelentés számára
állít be küszöbértéket, csak a megadott százalékérték alatti adatok
megjelenítése érdekében.
type=line_coverage_threshold, value=küszöbérték
- Configurations:
- Elhagyható: Különféle számítási konfigurációk megadására használják.
- Configuration:
- name: A konfiguráció neve.
- value: A konfiguráció értéke.
- Rendelkezésre álló konfigurációk:
- Alapértelmezett konstruktor befoglalás:
Beállítja, hogy a kódlefedettségi számításokban az alapértelmezett
konstruktorok szerepelnek-e. Alapértelmezésben
az alapértelmezett konstruktorok a számításokban szerepelnek. Ha egy
osztály nem határoz meg konstruktorokat, akkor a fordító egy
alapértelmezett, argumentum nélküli konstruktort állít elő. Ez a
konstruktor azonban a tényleges forrásfájlban nem jelenik meg. A program
végrehajtása során, ha ez az osztály nem kerül példányosításra, akkor ez a
rejtett alapértelmezett konstruktor nem kerül végrehajtásra, és így a
lefedettség az elvárt 100%-nak nem felel meg. Ez a viselkedés a
következő beállítással változtatható meg: name=excludeDefaultConstructor, value=true vagy false
1. példa
A következő példában a jelentéskészítéshez az adatgyűjtés a
coverage-data/coverage.coveragedata helyen a
coverage-data/blfile.coveragedata alapsor fájl segítségével
történik, a jelentés a coverage-reports helyen kerül tárolásra és a
line_coverage_threshold szűrő kerül alkalmazásra 80%-os küszöbértékkel. Az
alapértelmezett konstruktorok a kódlefedettség számításokban nem
szerepelnek.
<code-coverage-report outputDir="coverage-reports/"
coverageDataFile="coverage-data/coverage.coveragedata"
baseLineFiles="coverage-data/blfile.coveragedata">
<filters>
<filter type="line_coverage_threshold" value="80"/>
</filters>
<configurations>
<configuration name="excludeDefaultConstructor" value="true"/>
</configurations>
</code-coverage-report>
2. példa
A következő példában a jelentéskészítés két lefedettség fájlon, a
coverage1.coveragedata és coverage2.coveragedata fájlokon, a
blfile1.coveragedata és a blfile2.coveragedata alapsor
fájlok segítségével történik, a jelentés a coverage-reports helyen
kerül tárolásra. Alapértelmezésben az alapértelmezett konstruktorok a
kódlefedettség számításokban szerepelnek.
<code-coverage-report outputDir="coverage-reports/"
coverageDataFile="coverage-data/coverage1.coveragedata;coverage-data/coverage2.coveragedata"
baseLineFiles="coverage-data/blfile1.coveragedata;coverage-data/blfile2.coveragedata">
</code-coverage-report>
A kódlefedettségi eredmények megtekintése a kezelőfelületen
Az Ant parancsfájlos kódlefedettségi eredmények megtekintéséhez a
kezelőfelületen, tegye a következőket:
- Importálja a lefedettségi eredményeket tartalmazó fájlt:
- Válassza ki a Fájl > Importálás... lehetőséget
- Válassza ki a Kódlefedettség > Kódlefedettségi adatfájl lehetőséget
- Kattintson a Tovább gombra
- Válassza ki a Fájlrendszer importálási típust
- Kattintson a Tovább gombra
- Adja meg az importálandó lefedettségi adatfájl helyét
(a fenti példában coverage_data.coveragedata), a mappa nevét, amelybe
importálásra kerül, és a lefedettségi adatfájlhoz tartozó projekt(eke)t
- Kattintson a Befejezés gombra. Ezután a rendszer felszólítja a
projekt újraépítésére, amennyiben az a kódlefedettségre még nincs
felkészítve.
- Állítsa elő a kódlefedettség jelentést:
- Válassza ki a Futtatás > Kódlefedettség > Jelentés
előállítása... lehetőséget.
- A Név oszlopból válasszon ki legalább egy Java indítást
- Válasszon Eclipse-alapú vagy a HTML-alapú jelentést
- Kattintson a Futtatás lehetőségre
Megjegyzés: Lefedettségi adatfájl(ok) kiválasztása helyett azt
is megteheti, hogy kattint a jobb egérgombbal, majd kiválasztja az előugró
menü Kódlefedettség > Jelentéselőállítása... menüpontját. Adja
meg a jelentéshez tartozó projektet és mappahelyet, majd kattintson a
Befejezés gombra.
Kódlefedettség letiltása
Az Ant feladat segítségével felkészített osztályok letiltásához
fordítsa újra a projektet vagy helyettesítse a .class fájlokat a
.class.bak fájlokkal, amennyiben a saveBackups beállítás engedélyezett volt.
Kapcsolódó fogalmak
Kódlefedettség jelzők
Kapcsolódó feladatok
Kódlefedettség engedélyezése
Kódlefedettség szintek és szűrők beállítása
Kódlefedettség jelzők beállítása
Kódlefedettség jelentések elemzése
(C) Copyright IBM Corporation 2007, 2008. Minden jog fenntartva.