unitarias unit test sencillo que pruebas probar ejemplos ejemplo desde con clase cero java junit4 mockito

java - sencillo - ¿Por qué no puedo acceder a src/test/resources en la prueba de Junit con Maven?



que es junit (2)

Acceda a MainConfig.xml directamente. Los contenidos del directorio src/test/resources se colocan en la raíz de CLASSPATH.

Más precisamente: los contenidos de src/test/resources se copian en target/test-classes , por lo que si tiene la siguiente estructura de proyecto:

. └── src └── test ├── java │   └── foo │   └── C.java └── resources ├── a.xml └── foo └── b.xml

El resultado será el siguiente contenido de CLASSPATH de prueba:

  • /foo/C.class
  • /a.xml
  • /foo/b.xml

Para acceder realmente a los archivos desde el origen de Java, use getClass().getResource("/MainConfig.xml").getFile() .

Tengo problemas para ejecutar el siguiente código:

configService.setMainConfig("src/test/resources/MainConfig.xml");

Desde dentro de un método Junit @Before.

¿Es esta la forma en que Maven construye su carpeta de destino?


Supongo que setMainConfig espera la ruta de un recurso, que se cargará usando el ClassLoader, y no una ruta de archivo relativa. Sería útil si se vinculó al javadoc de este misterioso método configService.setMainConfig .

Si mi suposición es correcta, entonces la ruta debería ser solo MainConfig.xml. Mave copia el contenido de src/test/resources a la carpeta target/test-classes (IIRC). Y esta carpeta de clases de prueba se encuentra en el classpath de las pruebas unitarias.