¿Recursos de prueba de dependencias que no están en classpath?
Tengo un proyecto Spring de varios módulos que configuré usando Maven:
my-root (pom)
- my-logic
- my-webapp (depending on my-logic)
- my-consoleapp (depending on my-logic)
Mis clases de prueba heredan deAbstractTransactionalJUnit4SpringContextTests
y use@ContextCofiguration
para configurar elApplicationContext
.
P.ej. La clase de prueba para un controlador Spring:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {
"classpath:applicationContext-logic-test.xml",
"classpath:applicationContext-web-test.xml"})
public class ControllerTest extends AbstractTransactionalJUnit4SpringContextTests {
@Autowired
private ApplicationContext applicationContext;
...
}
Como puede ver, hay un XML de configuración por módulo. Tengo configuraciones separadas para la prueba, que residen en la prueba / recursos de cada módulo (y adicionalmente con el sufijo "-test"). Todo esto funciona (la clase compila, ejecuta y las pruebas JUnit son exitosas)Si Ejecuto la prueba JUnit en Eclipse.
Ahora a mi problema:¡Ejecutar la prueba usando Maven NO funcionará! (por ejemplo, con "Ejecutar como"> "Instalar Maven" enmy-root
(Yo uso m2eclipse)). Específicamente, arrojará la siguiente excepción:
java.io.FileNotFoundException: el recurso de ruta de clase [applicationContext-logic-test.xml] no se puede abrir porque no existe`
Parece que Maven no agrega los archivos demy-logic/src/test/resources
al classpath que se configura al ejecutar las pruebas unitarias demy-webapp
.
¿Cómo puedo arreglar eso?