Domanda

Sto usando Maven cobertura plugin per la copertura codice di rapporto nel mio progetto multimodulo.

Il problema è che non so come generare un rapporto per tutti i moduli di progetto.

Finora ho generato rapporti separati per ogni modulo, ma sarebbe bello avere un rapporto per tutto il progetto.

La mia configurazione padre pom:

   <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>cobertura-maven-plugin</artifactId>
        <version>2.4</version>
        <inherited>true</inherited>
        <executions>
            <execution>
                <phase>test-compile</phase>
                <goals>
                    <goal>clean</goal>
                    <goal>cobertura</goal>
                </goals>
            </execution>
        </executions>
    </plugin>
È stato utile?

Soluzione

A mia conoscenza, questo non è attualmente supportato, vedi MCOBERTURA-65 . Ma la questione ha un cerotto attaccato, forse provare. Ma il mio suggerimento sarebbe quello di usare qualcosa come Sonar alle metriche aggregate.

Altri suggerimenti

Il plugin è stato aggiornato dal questa domanda è stato chiesto (e ultimo ha risposto) per consentire ora rapporti aggregati, tramite la proprietà di configurazione aggregate nel POM genitore.

Questo produce il rapporto di copertura aggregato alla target/site/cobertura/index.html che includerà tutti i moduli.

(Ogni modulo sarà anche avere un proprio rapporto di prodotto, se questo è di alcuna utilità.)

Parent pom.xml

<modules>
    <module>moduleA</module>
    <module>moduleB</module>
    <module>moduleC</module>
<modules>
<build>
    <pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>cobertura-maven-plugin</artifactId>
                <version>2.6</version>
                <configuration>
                    <check/>
                    <formats>
                        <format>html</format>
                        <format>xml</format>
                    </formats>
                    <aggregate>true</aggregate>
                </configuration>
            </plugin>
            ...
    </pluginManagement>
    <plugins>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>cobertura-maven-plugin</artifactId>
        </plugin>
    </plugins>
...
</build>

Sono stato con Hudson come strumento di Continuous Integration. Il plugin Cobertura mi permette di vedere la copertura del codice di tutti i moduli del bambino durante il controllo sul genitore.

La Jenkins Cobertura plug aggregati della relazione automaticamente, ma se siete interessati nel file di copertura in sé per altri motivi si può fare seguendo sotto procedura:

  1. Scarica Cobertura da qui

  2. Vai al tuo spazio di lavoro del progetto -> trovare tutti i file .ser e rinominarli

    (i=0; find . | grep cobertura.ser$ | while read line;do echo $line; cp -i $line cobertura$i.ser;i=$(($i+1));done;)
    
  3. uso cobertura-merge.sh per generare file di .ser globale

    ~/cobertura-2.0.3/cobertura-merge.sh --datafile cobertura.ser cobertura*.ser
    
  4. uso cobertura-report.sh per generare il rapporto in archivio .ser globale

    ~/cobertura-2.0.3/cobertura-report.sh ./cobertura.ser --destination ./ --format xml
    

Si avrà la coverage.xml globale generato nella directory corrente. Si può usare per qualsiasi tipo di ulteriore elaborazione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top