Моей структура папок в проекте:Загрузка файлов в весенних тестах
./assets/strings.properties
./module1/src/main/java/{some-packages}/ContextConfig.java
./module1/src/test/java/{some-packages}/TestContextConfig.java
./module1/pom.xml
./module2/pom.xml
./pom.xml
в ContextConfig загружает файлы некоторых свойств из активов папка, как это:
@PropertySources({
@PropertySource("file:assets/strings.properties")
})
public class ContextConfig {
/*some code...*/
}
Обратите внимание, что я не использую classpath:
но file:
В TestContextConfig я импортирую ContextConfig, а также активирую встроенное mongo следующим образом:
@Configuration
@Import({
ContextConfig.class,
MongoAutoConfiguration.class
})
public class TestContextConfig {
}
Когда я пытаюсь использовать его в моем тестовом классе:
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = TestContextConfig.class)
public class ProofOfConcept {
/*some code...*/
}
я FileNotFoundException, потому что не может найти файл свойств, но когда приложение запускается в обычном режиме (не в тестах) все работает хорошо. Исключения я получаю:
Caused by: org.springframework.beans.factory.BeanDefinitionStoreException: Failed to process import candidates for configuration class [{some-packages}.config.TestContextConfig]; nested exception is java.io.FileNotFoundException: assets\strings.properties (System nie może odnaleźć określonej ścieżki)
at org.springframework.context.annotation.ConfigurationClassParser.processImports(ConfigurationClassParser.java:495)
at org.springframework.context.annotation.ConfigurationClassParser.doProcessConfigurationClass(ConfigurationClassParser.java:276)
Как я могу загрузить файлы из папки активов в тестах?
Рад, что он решил вашу проблему! – asg