2013-08-06 12 views
17

Recentemente ho aggiunto il plugin Cobertura al mio progetto Java/Spring-MVC. La cosa strana è che tutti i miei test di unità passavano, e che ancora passano quando Maven fa il suo giro di prova iniziale, ma poi quando Cobertura tenta di eseguire i test, tutti falliscono con lo stesso messaggio di errore:Test unitari che passano attraverso Maven, ma non riescono attraverso Cobertura: "Aspettando un frame stackmap al target di diramazione 65"

Expecting a stackmap frame at branch target 65 in method xxx.xxxx.xxxx.xxxx;)V at offset 40 

Non ho idea del motivo per cui questo sta accadendo e non so nemmeno come fare per aggiustarlo. Ho cercato su internet ma non ho riscontrato problemi simili. Io uso JUnit e spring-test-mvc per i test.

Qualcuno ha visto questo prima?

+0

questo sembra essere un problema comune, con domande molto simili pubblicate sul SO. Ho postato la risoluzione al nostro problema è stato risolto con questo: http://stackoverflow.com/a/20001391/1279002 – theINtoy

+1

Ho incontrato lo stesso problema quando si utilizzava cobertura-maven-plugin versione 2.4. Ha funzionato sia per JDK_1.7.0_79 che per JDK_1.8.0_45 quando ho aggiornato cobertura-maven-plugin alla versione 2.7. – user2432405

risposta

19

Certo che trovare la risposta giusta dopo aver chiesto la questione, anche se ho cercato per un bel po 'prima ...

Il problema è che Cobertura ha problemi a lavorare con Java 1.7. Devi aggiungere la seguente riga al tuo pom.xml:

<argLine>-XX:-UseSplitVerifier</argLine> 

Vale a dire nell'elemento di configurazione. Ecco l'intera sezione Cobertura:

 <plugin> 
     <groupId>org.codehaus.mojo</groupId> 
      <artifactId>cobertura-maven-plugin</artifactId> 
      <version>2.5.1</version> 
      <configuration> 
       <argLine>-XX:-UseSplitVerifier</argLine> 
       <formats> 
        <format>xml</format> 
       </formats> 
      </configuration> 
      <executions> 
       <execution> 
        <phase>test</phase> 
        <goals> 
         <goal>cobertura</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 

Ora tutto funziona come previsto.

+0

Quindi, per favore, aumenta la mia domanda. :-) – Jagger

+6

Cobertura 2.6 risolve anche questo. –

3

fisso utilizzando nuovo plugin

    <plugin> 
         <groupId>org.codehaus.mojo</groupId> 
         <artifactId>cobertura-maven-plugin</artifactId> 
         <version>2.7</version> 
         <configuration> 
          <formats> 
           <format>xml</format> 
          </formats> 
         </configuration> 
         <executions> 
          <execution> 
           <phase>package</phase> 
           <goals> 
            <goal>cobertura</goal> 
           </goals> 
          </execution> 
         </executions> 
        </plugin> 
+0

SÌ! Ho provato il -noverify, ho provato il -XX: -UseSplitVerifier e non ho avuto fortuna. Sto usando java 1.8 e questo è quello che ha funzionato per me. trascorso 4 ore su questo! Spero che altre persone con lo stesso problema incontrino questa risposta – Mason

Problemi correlati