У меня есть проект с несколькими модулями Spring, который я настраивал с помощью Maven:
my-root (pom)
- my-logic
- my-webapp (depending on my-logic)
- my-consoleapp (depending on my-logic)
Наборы My Test наследуют от AbstractTransactionalJUnit4SpringContextTests
и используют @ContextCofiguration
для настройки ApplicationContext
.
например. тестовый класс для контроллера 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;
...
}
Как вы видите, есть XML файл конфигурации для каждого модуля. У меня есть отдельные конфигурации для tesing, которые находятся в тесте/ресурсах каждого модуля (и дополнительно имеют суффикс "тест" ). Все это работает (компиляция классов, прогоны и тесты JUnit успешны) , если Я запускаю тест JUnit в Eclipse.
Теперь к моей проблеме: Запуск теста с использованием Maven не будет работать! (например, с помощью "Запустить как" > "Установка Maven" на my-root
(я использую m2eclipse)). В частности, это вызовет следующее исключение:
java.io.FileNotFoundException: ресурс пути класса [applicationContext-logic-test.xml] не может быть открыт, потому что он не существует `
Кажется, что Maven не добавляет файлы из my-logic/src/test/resources
в путь к классам, который настроен при выполнении модульных тестов my-webapp
.
Как я могу это исправить?