2012-09-12 19 views
7

Una domanda newbie su Maven - infallibile - Eclipse - JUnitMaven argomenti infallibili durante l'esecuzione di test JUnit con Eclipse

Ho configurato il maven-surefire-plugin nel file POM del mio progetto di passare alcuni argomenti JVM aggiuntivi qui di seguito:

 <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-surefire-plugin</artifactId> 
      <version>${maven.surefire.plugin.version}</version> 
      <configuration> 
       <argLine>-d64 -Xms128m -Xmx4096m -XX:PermSize=512m -Duser.timezone=UTC -XX:-UseSplitVerifier</argLine> 
      </configuration> 
     </plugin> 

Quando eseguo un banco di prova di questo progetto da Eclipse come Run As-> test JUnit, anche se il percorso di classe è impostato correttamente, gli argomenti aggiuntivi specificati nel argLine non sono inclusi nel invocazione. Devo andare e digitare manualmente gli argomenti sotto il relativo Debug Configurations. Non capisco perfettamente come JUnit sia consapevole del fatto che deve mettere i jar dell'ambito del test sul classpath e in qualche modo significa che lo strumento JUnit in Eclipse è a conoscenza di Maven tramite M2E? Se è così, come possiamo farlo leggere anche argLine. So che questo suona molto specifico - ma come gestiscono gli altri in situazioni simili?

Grazie in anticipo!

+0

È possibile aggiungere argomenti di programma a una configurazione di avvio di Junit inserendoli nella scheda 'Argomenti' della definizione lancher all'interno di Eclipse. – HDave

+0

Nota è necessario separare gli argomenti dalla macchina virtuale e gli argomenti del programma stesso. –

+0

Vedo che IntelliJ fa esattamente quello che mi sarei aspettato. – Kilokahn

risposta

9

Eclipse JUnit Launcher (scegli Run As -> JUnit Test) è un test runner indipendente che ha una propria configurazione predefinita e un ciclo di vita in esecuzione e non ha nulla a che fare con Maven, non raccoglierà il tuo pom magicamente e leggerà nella configurazione surefire e usarli per guidare il test in esecuzione.

Se il progetto viene importato come progetto Maven esistente, utilizzare Maven (scegliere Run as -> Maven test) avviare il test JUnit che preleverà e utilizzerà la configurazione surefire. È esattamente come eseguire mvn test da riga di comando, emette solo il log di esecuzione nella console e non è possibile utilizzare la bella finestra di JUnit UI verde rossa &.

Spero che abbia senso.

+0

se Eclipse JUnit è un test runner indipendente, come fa a sapere i jar necessari per il classpath in base all'ambito del test? – Kilokahn

+0

In generale, è gestito da m2eclipse. Quando si importa il progetto Maven esistente, in realtà è m2eclipse a dominare l'impostazione del progetto, ad esempio generare il file di metadati di Eclipse .project & .classpath, compilare il classpath del progetto (di causa da pom.xml) e così via. Una volta che il progetto è stato importato correttamente in IDE, m2eclpise praticamente fatto il suo lavoro Da qui, se vuoi, sei libero di fare il tuo lavoro (codifica/debug/test) senza coinvolgere m2eclipse. AFAIK, non esiste alcuna associazione tra m2eclipse e Eclipse JUnit Launcher. – yorkw

+1

grazie per le informazioni! Quindi il prossimo passo sarebbe vedere se m2eclipse può anche leggere l'argLine del plugin surefire config e in qualche modo popolare la configurazione di debug dei test in quel progetto per avere gli argomenti da argLine, giusto? O questo chiedendo troppo? :) – Kilokahn