1
項目我的文件夾結構是:加載文件
./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我加載某些屬性的文件,從文件夾中的資產是這樣的:我不是使用classpath:
@PropertySources({
@PropertySource("file:assets/strings.properties")
})
public class ContextConfig {
/*some code...*/
}
公告但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