2010-05-04 3 views
7

I m di fronte a un problema in cui test/risorsa non viene raccolto, ma invece principale/risorsa del vaso viene raccoltoJunit non esegue il prelievo di file src/test/risorse. Per file richiesto da alcuni vaso dipendenza

scenario è simile: mioprogetto src/test/risorse --- avere config .xml w che dovrebbe essere necessario da abc.jar che è una dipendenza in Myproject.

Quando si esegue il test case per Myproject, carica il file config.xml di abc.jar anziché Myproject test/resources. - Ho bisogno di conoscere l'ordine in cui il Maven seleziona le risorse. - O il tentativo non è possibile.

Grazie.

+0

Rifrazione della domanda: Myproject dependency abc.jar class loadFile.java carica il file config.xml che si trova in abc src/main/resource. Quando eseguo il test case di Myproject quale .xml loadFile.java dovrebbe scegliere. 1. abc jar main/resource o 2. Myproject tase/resource –

risposta

13

I file da target/tests-classes (per impostazione predefinita) sono inclusi allo all'inizio del percorso di prova. Pertanto, durante l'esecuzione dei test, le risorse sia da src/main/resources sia da src/test/resources si trovano nel classpath, ma le versioni successive hanno la precedenza rispetto al primo. In altre parole, se si dispone di un config.xml in src/main/resources e in src/test/resouces:

  • src/main/resources/config.xml sarà impaccato in manufatto finale ma
  • src/test/resources/config.xml saranno utilizzati durante l'esecuzione di test di

Se questo non è quello che stai vivendo, ci deve essere un errore da qualche altra parte.

Se si vuole convincere che è possibile eseguire mvn -X test, verrà stampato il percorso di classe . E vedrete che questo percorso di classe è costituito da (in questo ordine):

  • target/test-classes
  • target/classes
  • il vaso progetto
  • le dipendenze (compresi quelli con un ambito di test)
+0

Grazie per la risposta ... la sua rappresentazione come si dice. Ciò significa che il file config.xml nelle classi di test otterrà la preferenza sul file config.xml in alcune dipendenze jar. Ma questo non succede nel mio caso, dipendenza jar sta caricando il proprio .xml piuttosto il mio test/risorse. Wat posso fare per rintracciarlo. –

+0

@ saddy-dj Chi sta caricando 'config.xml' esattamente? Un caso di test o una classe di un JAR?Penso di iniziare a capire quale potrebbe essere la causa del problema ... –

+0

la classe di un JAR lo sta caricando ... –

0

Mi sono imbattuto in un problema simile con il mio progetto. Quindi ho TestClassA in ProjectA che chiama ClassB da ProjectB. ClassB utilizza un file in src/test/risorse. Per qualche motivo questo file non è stato utilizzato. Ho scoperto che ProjectA aveva un file con lo stesso nome nel suo src/test/risorse.
Quindi, in sintesi, anche se ClassB era in ProjectB, utilizzava src/test/resources di ProjectA perché quello era il progetto da cui proveniva il test.

Problemi correlati