У нас есть макет проекта, как показано ниже.
src
src / test / java
src / test / resources
и мы не можем добавить src/ main / (java, resources) для кода из-за более раннего выполнения developmnt.
src / test / java содержит и модульные, и интеграционные тесты в том же пакете, что и тестируемый класс в папке src.
модульные тесты работают нормально в текущей настройке, но проблемы с запуском интеграционных тестов.
Интеграционные тесты работают отлично, когда тестовый класс и файлы конфигурации находятся вдоль тестируемого бокового класса, в папке src и в том же пакете, что иclass.
но когда я помещаю тестовый класс в src / test / java, а конфигурационные файлы в src / test / resources, тест не запускается из-за проблем с инициализацией контекста.
обратите внимание на следующее о envsetup
1 выходная папка сборки для всех src, src / test / java и src / test / resources - только папка src.
2 я использую classpath *: чтобы указатьрасположение конфига, как и другиеSE Spring не может найти файл конфигурации в папке ресурсов.
@ContextConfiguration(locations={"classpath*:applicationContext_getCorpAcctPrefDetailsSP.xml"})
3 пробовал как DI на основе @Autowired, так и setter на тестовых классах
> (i). in case of @Autowired i get error for depedency saying
No unique bean of type GetCorpAccountPreferencesDetailsSP is defined expected at least 1 matching bean
also i am using base package scan
> (ii). in case of Setter based DI context get initialized and unit test run but all the dependencies injected are null in test class.
объясните, пожалуйста, в чем причина проблемы и какое-либо решение.
Поскольку все работает нормально, когда интеграционные тесты находятся в папке src рядом с тестируемым классом.
Я подозреваю, что возникли проблемы с созданием различных исходных папок (src и test), когда Spring создает контекст, так как тестируемый класс отсутствуетта же исходная папка, что и в тесте.
спасибо nBhati