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