Abilitazione della copertura codice da uno script Ant

Per verificare che il codice che si sta creando soddisfi i criteri di accettazione della copertura del codice, abilitare la copertura del codice da uno script Ant. A tale scopo, è necessario eseguire le seguenti operazioni:

È possibile anche visualizzare i risultati di copertura del codice nel workbench.

Configurare uno script Ant per abilitare una copertura del codice

Per configurare uno script Ant per abilitare la copertura del codice, aggiungere i seguenti valori alla variabile di ambiente CLASSPATH:
<install_dir>/plugins/com.ibm.rational.llc.engine_1.0.0.<numero_versione>
e definire una nuova attività nel file di build. Ad esempio:

<taskdef name="instrument" classname="com.ibm.rational.llc.engine.instrumentation.anttask.InstrumentationTask" classpath="${install_dir}/plugins/com.ibm.rational.llc.engine_1.0.0.<numero_versione>"/>

Il formato dell'attività di strumentazione è:

<instrument buildPath="" baseLineFile="" saveBackups="" outputDir=""/>

dove:

buildPath:
Specifica i file per i quali verranno raccolti i dati di copertura del codice. Il percorso build può fare riferimento sia ad un nome file di classe, ad un nome file jar o ad un nome directory. Può essere definito proprio come ogni altro riferimento percorso utilizzato in Ant.


baseLineFile:
Specifica il percorso in cui viene memorizzato il file baseline. Il file baseline è il file con cui viene confrontato il codice fornito e con cui vengono generate le statistiche di copertura del codice. Serve anche come input all'attività ant di generazione dei report.


saveBackups:
Specifica se rinominare la classe originale e i file jar in *.bak. Impostando saveBackups su true, verranno generati file di backup; impostando saveBackups su false, i file originali verranno sovrascritti (e quindi persi).
Note: saveBackups è facoltativo e il valore predefinito è false.


outputDir:
Specifica la posizione in cui verranno memorizzati i file forniti. Per impostazione predefinita, i file forniti vengono memorizzati nella stessa posizione dei file che verranno forniti.

Esempio 1

Nel seguente esempio, i dati di copertura del codice vengono raccolti per tutti i file in bin/, il file baseline viene memorizzato in blfile.coveragedata, non viene generato alcun backup per questi file e i file forniti vengono memorizzati in coverageData_files.

<instrument saveBackups="false" baseLineFile="blfile.coveragedata" buildPath="bin/" outputDir="coverageData_files"/>

Esempio 2

Nel seguente esempio, i dati di copertura del codice vengono raccolti per tutti i file in bin/ a cui si fa riferimento come build.Dir, il file baseline viene memorizzato in blfile.coveragedata e viene generato un backup per ciascuno di questi file.

<path id="build.Dir"> <pathelement location="bin"/> </path>
<instrument saveBackups="true" baseLineFile="blfile.coveragedata" buildPathRef="build.Dir" />

Esempio 3

Nel seguente esempio, i dati di copertura del codice vengono raccolti per tutti i file in bin/, il file baseline viene memorizzato in blfile.coveragedata e viene generato un backup per ciascuno di questi file.

<instrument saveBackups="true" baseLineFile="blfile.coveragedata"> <buildPath> <pathelement location="bin"/> </buildPath> </instrument>

Esempio 4

Nel seguente esempio, i dati di copertura del codice vengono abilitati per tutte le sottodirectory in bin/ che contengono com nel nome directory e escludendo i file in quelle sottodirectory il cui nome contiene Test. Viene generato un backup per ciascun file in fase di analisi della copertura del codice e il file baseline viene memorizzato in blfile.coveragedata.

<instrument saveBackups="true" baseLineFile="blfile.coveragedata"> <buildPath> <fileset dir="bin"> <exclude name="**/*Test*"/> <include name="**/*com*/*"> </fileset> </buildPath> </instrument>

Esempio 5

Nel seguente esempio, i dati di copertura del codice vengono abilitati per tutti i file in bin/ ad eccezione di quei file nelle sottodirectory di bin il cui nome contiene Test e bin2/. Viene generato un backup per ciascun file in fase di analisi di copertura del codice e il file baseline viene memorizzato in blfile.coveragedata.

<instrument saveBackups="true" baseLineFile="blfile.coveragedata"> <buildPath> <fileset dir="bin"> <exclude name="**/*Test*"/> </fileset> </buildPath> <buildPath> <pathelement location="bin2"/> </buildPath> </instrument>

Esecuzione dello script Ant

Una volta configurato lo script Ant per abilitare la copertura del codice, è possibile eseguire lo script Ant dalla riga di comando o dal workbench.

Esecuzione dalla riga di comando

Per eseguire lo script Ant dalla riga di comando:

  1. Impostare la variabile d'ambiente JAVA_HOME sulla directory in cui è installato JDK.
  2. Accertarsi che la variabile d'ambiente CLASSPATH contenga il percorso e il nomefile completi del file probekit.jar. Il file probekit.jar si trova nella sottocartella org.eclipse.hyades.probekit con il numero di versione superiore e la data/ora più recente della cartella plugins dell'installazione del prodotto.
  3. Accertarsi che la variabile d'ambiente CLASSPATH contenga JAVA_HOME (il percorso all'installazione Java, ad esempio JAVA_HOME/bin/java, è valido).
  4. Accertarsi che la variabile d'ambiente PATH contenga il percorso completo alla sottocartella di org.eclipse.hyades.probekit che sia appropriato per la piattaforma. Ad esempio:
  5. Impostare LLC_PLUGIN come percorso alla cartella plugins:
    set LLC_PLUGIN=<install_dir>\plugins

Esempio

ant -lib=<install_dir>\plugins\org.eclipse.hyades.probekit_<version>\probekit.jar myTarget

Esecuzione dal workbench

Per eseguire lo script Ant dal workbench:

Generazione delle statistiche della copertura del codice

Accertarsi che il percorso classi contiene i seguenti dati:
<install_dir>\plugins\com.ibm.rational.llc.engine_1.0.0.<numero_versione>

Per generare le statistiche di copertura del codice dalla riga di comando, dalla directory che precede il codice, eseguire:

java -Dcoverage.out.file=C:\coverage_report\coverage_data.coveragedata com.ibm.rational.llc.example

Nota: è possibile che sia necessario impostare Java affinché corrisponda a quello dell'installazione del prodotto.

Generazione dei report di copertura del codice

Per generare un report mediante Ant:
Eseguire il download di BIRT Runtime Report Engine e decomprimerne il contenuto. Impostare le seguenti variabili d'ambiente:

Ad esempio,
<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>

Definire una nuova attività nel file di build per la generazione dei report di copertura del codice, ad esempio:

<taskdef name="code-coverage-report" classname="com.ibm.rational.llc.report.birt.adapters.ant.ReportGenerationTask" classpathref="lib.path"/>

Il formato dell'attività di report della copertura del codice è:

<code-coverage-report outputDir="" coverageDataFile="" baseLineFiles=""> <filters> <filter type="" value=""/> </filters> <configurations> <configuration name="" value=""/> </configurations> </code-coverage-report>

dove:

outputDir:
Specifica la posizione in cui verranno memorizzati i risultati del report.


coverageDataFile:
Specifica uno o più file di dati di copertura su cui generare il report. Può essere definito proprio come ogni altro riferimento percorso utilizzato in Ant.


baseLineFiles:
Specifica uno o più file baseline che sono stati generati come parte dell'attività di strumentazione. Può essere definito proprio come ogni altro riferimento percorso utilizzato in Ant.


filters:
Facoltativo: Utilizzato per il filtro dei risultati dei report.


filter:
type: Il tipo di filtro da applicare al report.

value: Il valore del filtro da applicare al report.
Filtri disponibili:

Configurazioni:
Facoltativo: Utilizzato per la specifica delle configurazioni di vari calcoli.


Configurazione:
name: Il nome della configurazione.

value: Il valore della configurazione.
Configurazioni disponibili:

Esempio 1

Nel seguente esempio, la generazione dei report viene raccolta in coverage-data/coverage.coveragedata utilizzando coverage-data/blfile.coveragedata come file baseline, il report viene memorizzato in coverage-reports e il filtro line_coverage_threshold viene applicato con una soglia dell'80 percento. I costruttori predefiniti sono esclusi dai calcoli di copertura del codice.

<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>

Esempio 2

Nel seguente esempio, la generazione dei report viene raccolta in due file di copertura coverage1.coveragedata e coverage2.coveragedata utilizzando blfile1.coveragedata e blfile2.coveragedata come file baseline, il report viene memorizzato in coverage-reports. Per impostazione predefinita, i costruttori predefiniti sono inclusi nei calcoli di copertura del codice.

<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>

Visualizzazione dei risultati di copertura del codice nel workbench

Per visualizzare i risultati della copertura del codice dello script Ant nel workbench:

Disabilitazione della copertura del codice

Per disabilitare le classi fornite utilizzando l'attività ant, ricompilare il progetto o sostituire i file .class con i file .class.bak, se saveBackups è stato abilitato.

Concetti correlati
Indicatori della copertura codice

Attività correlate
Abilitazione della copertura codice
Configurazione dei livelli e dei filtri della copertura codice
Configurazione degli indicatori della copertura codice
Analisi dei report della copertura codice