我正在尝试用Spring创建一个单元测试。
测试类:
@RunWith(SpringRunner.class)
@SpringBootTest(classes = {MyConfig.class})
public class MyTest{
@Test
public void ...
}
要加载的类:
@ConfigurationProperties()
@PropertySource("config/myConfig.properties")
@Component
public class MyConfig {}
例外:
引起:org.springframework.beans.factory.BeanDefinitionStoreException:失败 解析配置类 [de.db.sus.converter.fia.business.algorithm.config.FiaConverterConfig]; 嵌套异常是java.io.FileNotFoundException:无法打开 ServletContext资源[/config/myConfig.properties]
我找到了用于Web应用程序和/或基于xml的配置的资源,但不适用于传输它们。
如果我使用@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
启动应用程序,则会加载属性。但我不能为每个单元测试启动整个应用程序。
我已经验证该文件存在于test / resources / config /
目录中答案 0 :(得分:10)
似乎无法找到请求的属性。我建议这样做:
如果请求的属性文件在您的类路径中,您只需编写下一行即可解决上述问题:
@PropertySource("classpath:config/myConfig.properties")
答案 1 :(得分:0)
我如下配置了maven war插件
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.1.1</version>
<configuration>
<warName>${war-file-name}</warName>
<warSourceDirectory>src/main/webapp</warSourceDirectory>
<failOnMissingWebXml>false</failOnMissingWebXml>
<webResources>
<resource>
<!-- this is relative to the pom.xml directory -->
<directory>src/main/resources</directory>
</resource>
</webResources>
</configuration>
</plugin>
将以下部分配置为与您的pom.xml
<webResources>
<resource>
<!-- this is relative to the pom.xml directory -->
<directory>src/main/resources</directory>
</resource>
</webResources>