我正在构建一个非常简单的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
在src/main/resources/application.properties
内定义(在main/
中,不在test/
中)
测试不通过,因为找不到my.key
属性(但如果我把这个属性放在src/test/resources/application.properties
里面,它可以工作)
我确信我见过很多Spring Boot应用程序,其中测试类从/main/resources/application.properties
读取属性
但是这里不起作用。
如果您还在src/test/resources
中添加了一个application.properties
文件,这将'覆盖';src/main/resources
中的键,因此没有您在"生产"中定义的键。将会看到属性文件
所以要么删除src/test/resources
中的application.properties
,在src/main/resources
中使用你的属性文件,要么在那里定义你的值。
你可以使用@TestPropertySource重写application.properties.
的位置。@RunWith(SpringRunner.class)
@SpringBootTest
@TestPropertySource(locations="classpath:application.properties")
public class MyTest {
}
关于如何使用它的进一步帮助,请点击这里