вопросы макета проекта и поддержки весенних испытаний - PullRequest
0 голосов
/ 26 июля 2011

У нас есть макет проекта, как показано ниже.

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

1 Ответ

1 голос
/ 26 июля 2011

Во время выполнения Spring не заботится (или не знает), в какой папке находится ваш исходный код. Все, что имеет значение, - это путь к классам - какие скомпилированные файлы и какие папки ресурсов помещаются в путь к классам. Если вы получаете ошибки о файлах XML, которые не могут быть обнаружены при запуске ваших тестов, это настоятельно рекомендует, чтобы эти файлы XML не находились в пути к классам при запуске тестов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...