2010-09-16 17 views
5

Sto provando a scrivere alcuni test Junit per testare le vecchie classi nella nostra app. Il codice sta tentando di caricare un ResourceBundle (per le traduzioni) ma fallisce. Immagino che il problema sia correlato al classpath ma non riesco a capirlo.Impossibile caricare ResourceBundle durante il test di junit

Il codice è disposto in/src e i miei test sono in/test. I ResourceBundles vengono caricati con un nome di base relativo a/src, ad esempio "foo/bar/baz".

I miei test utilizzano lo stesso classpath dell'app stessa, quindi non capisco perché non troverà i bundle.

Qualche idea di cosa c'è che non va?

+0

I test sono in una directory denominata '/ test'? – Asaph

+0

Se si modifica temporaneamente il percorso relativo i propri ResourceBundles in uno assoluto, il problema scompare? – Asaph

risposta

6

Le risorse non vengono risolte dalla cartella di origine ma dalla directory di classe. I file delle risorse vengono copiati nella cartella di output (bin, destinazione/classi ecc.)? In caso contrario, le tue classi non possono trovarli.

+0

D'uh! Naturalmente, i miei test utilizzano un'altra directory di output rispetto all'app. Questo è sicuramente. – fiskeben

5

Se si utilizza Maven, in genere si desidera mettere tutti i tipi di proprietà file e pacchetti di risorse in una cartella di origine separata denominata src/main/resources/.

Se si desidera eseguire l'override dei valori nei test dell'unità, è possibile aggiungere un puntello duplicato. file nella cartella sorgente src/test/resources.

Problemi correlati