Testressourcen von Abhängigkeiten nicht im Klassenpfad?
Ich habe ein Spring-Projekt mit mehreren Modulen, das ich mit Maven eingerichtet habe:
my-root (pom)
- my-logic
- my-webapp (depending on my-logic)
- my-consoleapp (depending on my-logic)
Meine Testklassen erben vonAbstractTransactionalJUnit4SpringContextTests
und benutze@ContextCofiguration
zum Einrichten desApplicationContext
.
Z.B. die Testklasse für einen Spring Controller:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {
"classpath:applicationContext-logic-test.xml",
"classpath:applicationContext-web-test.xml"})
public class ControllerTest extends AbstractTransactionalJUnit4SpringContextTests {
@Autowired
private ApplicationContext applicationContext;
...
}
Wie Sie sehen können, gibt es eine Konfigurations-XML pro Modul. Ich habe separate Konfigurationsdateien für das Testen, die sich in den Test / Ressourcen jedes Moduls befinden (und zusätzlich das Suffix "-test" haben). Dies alles funktioniert (die Klasse kompiliert, läuft und die JUnit-Tests sind erfolgreich)wen Ich führe den JUnit-Test in Eclipse aus.
Nun zu meinem Problem:Der Test mit Maven funktioniert NICHT! (z. B. mit "Ausführen als"> "Maven-Installation" aufmy-root
(Ich benutze m2eclipse)). Insbesondere wird die folgende Ausnahme ausgelöst:
java.io.FileNotFoundException: Klassenpfadressource [applicationContext-logic-test.xml] kann nicht geöffnet werden, da sie nicht vorhanden ist`
Es scheint, dass Maven die Dateien von @ nicht hinzufümy-logic/src/test/resources
zu dem Klassenpfad, der beim Ausführen der Komponententests von @ eingerichtet wurmy-webapp
.
Wie kann ich das beheben?