2010-09-16 22 views
5

Estoy tratando de escribir algunas pruebas Junit para probar las clases antiguas en nuestra aplicación. El código está intentando cargar un ResourceBundle (para traducciones) pero falla. Supongo que el problema está relacionado con classpath pero no puedo resolverlo.No se puede cargar ResourceBundle durante la prueba junit

El código se presenta en/src y mis pruebas están en/test. Los ResourceBundles se cargan con un nombre base relativo a/src, por ejemplo, "foo/bar/baz".

Mis pruebas utilizan el mismo classpath que la aplicación en sí, por lo que no entiendo por qué no encontrará los paquetes.

¿Alguna idea de qué pasa?

+0

¿Están sus pruebas bajo un directorio llamado '/ test'? – Asaph

+0

Si cambia temporalmente la ruta relativa de sus Recursos a uno absoluto, ¿el problema desaparece? – Asaph

Respuesta

6

Los recursos no se resuelven desde la carpeta de origen, sino desde el directorio de la clase. ¿Sus archivos de recursos están copiados en la carpeta de salida (bin, target/classes, etc.)? Si no, tus clases no pueden encontrarlos.

+0

D'uh! Por supuesto, mis pruebas usan otro directorio de salida que la aplicación. Esto es definitivamente eso. – fiskeben

5

Si está utilizando maven, normalmente desea colocar todo tipo de archivos de propiedades y paquetes de recursos en una carpeta de origen separada llamada src/main/resources/.

Si desea sobrescribir los valores en las pruebas de su unidad, puede agregar un accesorio duplicado. archivo en la carpeta de origen src/test/resources.

Cuestiones relacionadas