2016-04-05 21 views
5

Ho fatto un sacco di lavoro in passato per iscritto unit test che funzionano in modo "convenzionale" Maven costruisce, Uso JUnit e Mockito (e PowerMock). Ora sto lavorando a un codice di plug-in del codice Eclipse, che viene creato con Maven Tycho.Come ottenere i test unitari per l'esecuzione in Maven Tycho?

Nel complesso, è una build multiprogetto, ma sto solo aggiungendo unit test a uno dei progetti plug-in (per ora).

Ho sentito parlare di tycho-surefire, ma sembra piuttosto complicato, e suona molto più come supporta i test di integrazione invece dei test di unità . Immagino che probabilmente non avrò altra scelta che usarlo, ma finora non ho provato ad integrarlo.

ho provato ottenere i JUnit e Mockito manufatti da Maven, e quindi utilizzando il "maven-dipendenza-plugin" per ottenere i manufatti disponibili da riferimento nella "Bundle-percorso di classe" di proprietà del manifesto.

Quando eseguo la costruzione, la tycho-compiler-plugin lo vedo compilazione 105 fonte file, che comprende tutte le classi in src/main/java e src/test/java. Non riesce a compile classe di test, perché non riesce a trovare le Mockito classi, anche se quando ho eseguito la compilazione con -X, mostra il mockito-all manufatto nel dipendenze albero.

Cosa posso fare qui?

risposta

-1

Devi usare JUnit e Mockito come fasci OSGi

Credo che questa domanda ha risposto dettagliata here

Spero che questo aiuta.

+0

In realtà no. Non devi "passare attraverso questo inferno. È solo un'altra, più complicata opzione. Vedi la mia risposta – Alex

0

Dopo un sacco dolorosa Maven prova errore & ho lottato tutta this website, che fornisce un modo sorprendentemente facile da usare unità di test in una configurazione Maven-Tycho. Qui, le parti importanti della pom.xml quando si utilizza JUnit (probabilmente sembra simile per Mockito):

<testSourceDirectory>src/test/java</testSourceDirectory> 
<dependencies> 
    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>4.11</version> 
     <scope>test</scope> 
    </dependency> 
</dependencies> 
<plugins> 
    <plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-surefire-plugin</artifactId> 
    <version>2.12.4</version> 
    <executions> 
     <execution> 
     <id>test</id> 
     <phase>test</phase> 
     <configuration> 
      <includes> 
      <include>**/*Test.java</include> 
      </includes> 
     </configuration> 
     <goals> 
      <goal>test</goal> 
     </goals> 
     </execution> 
    </executions> 
    </plugin> 

    <plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-compiler-plugin</artifactId> 
    <version>2.5.1</version> 
    <executions> 
     <execution> 
     <id>compiletests</id> 
     <phase>test-compile</phase> 
     <goals> 
      <goal>testCompile</goal> 
     </goals> 
     </execution> 
    </executions> 
    </plugin> 
</plugins> 

Nome tutti i test in modo tale che essi terminano con "* Test.java". Eseguire mvn test per eseguire tutti i test unitari disponibili.

Problemi correlati