Condivisione del codice di test in Maven

Come puoi dipendere dal codice di prova di un altro modulo di Maven?

Esempio, ho 2 moduli:

  • Base
  • Principale

Vorrei un test case in Main per estendere una class di test di base in Base. È ansible?

Aggiornamento: trovata una risposta accettabile , che comporta la creazione di un barattolo di prova.

Raccomando di usare il tipo al posto del classificatore (vedi anche: classificatore ). Dice a Maven un po ‘più esplicitamente quello che stai facendo (e ho trovato che m2eclipse e q4e lo apprezzano entrambi).

 com.myco.app foo 1.0-SNAPSHOT test-jar test  

Grazie per il suggerimento del modulo di base. Tuttavia, preferirei non creare un nuovo modulo solo per questo scopo.

Ho trovato una risposta accettabile nella documentazione di Surefire Maven e in un blog . Vedi anche ” Come creare un jar contenente le classi di test “.

Questo crea un file jar di codice da src/test/java usando il plugin jar in modo che i moduli con test possano condividere il codice.

     org.apache.maven.plugins maven-jar-plugin 2.4    test-jar        

Per utilizzare il JAR di test allegato che è stato creato sopra, è sufficiente specificare una dipendenza dall’object principale con un classificatore di test specificato:

  ...   com.myco.app foo 1.0-SNAPSHOT test-jar test   ...  

Abbiamo risolto questo problema creando un progetto di maven con codice di test come src / main / java e aggiungendo la seguente dipendenza ai progetti:

   foo test-base 1 test  

Sì … basta includere il modulo Base come dipendenza in Main. Se si eredita solo il codice di test, è ansible utilizzare il tag scope per assicurarsi che Maven non includa il codice nel proprio artefatto una volta distribuito. Qualcosa di simile dovrebbe funzionare:

  BaseGroup Base 0.1.0-SNAPSHOT test