提问人:AntonBoarf 提问时间:6/26/2022 更新时间:6/28/2022 访问量:3478
Spring Test:为什么无法访问 application.properties?
Spring Test : why cannot access application.properties?
问:
我正在构建一个非常简单的Spring Boot应用程序。它没有代码,只是一个简单的测试:
@RunWith(SpringRunner.class)
@SpringBootTest
public class MyTest {
@Value("${my.key}")
private String key;
@Test
public void test() {
System.out.println(key);
}
}
my.key
在内部定义(在 notsrc/main/resources/application.properties
main/
test/
)
测试没有通过,因为找不到属性(但如果我把这个属性放在里面,它就可以工作了)my.key
src/test/resources/application.properties
我敢肯定,我已经看到了很多Spring Boot应用程序,其中测试类从中读取属性/main/resources/application.properties
但在这里它不起作用。
答:
1赞
user3776401
6/26/2022
#1
您可以使用 @TestPropertySource 来覆盖 application.properties 的位置。
@RunWith(SpringRunner.class)
@SpringBootTest
@TestPropertySource(locations="classpath:application.properties")
public class MyTest {
}
有关如何使用它的进一步帮助,请查看此处
3赞
rieckpil
6/28/2022
#2
如果还在 中添加一个文件,这将“覆盖”中的文件,因此不会看到您在 “production” 属性文件中定义的键。application.properties
src/test/resources
src/main/resources
因此,要么删除 in 以使用属性文件,要么在那里定义值。application.properties
src/test/resources
src/main/resources
评论