spring boot test 设置环境变量
在Spring Boot测试中设置环境变量可以通过@TestPropertySource
注解或者使用@SpringBootTest
注解的properties
属性来实现。
使用@TestPropertySource
注解:
@RunWith(SpringRunner.class)
@SpringBootTest
@TestPropertySource(properties = {
"property.name=propertyValue"
})
public class MyTest {
// ...
}
使用@SpringBootTest
注解的properties
属性:
@RunWith(SpringRunner.class)
@SpringBootTest(properties = {
"property.name=propertyValue"
})
public class MyTest {
// ...
}
另外,如果你想要在IDE外部设置环境变量,可以在运行测试之前设置系统属性或者使用操作系统的环境变量设置方法。
例如,在Unix系统中,你可以在运行测试之前设置环境变量:
export PROPERTY_NAME=propertyValue
./gradlew test
或者在Windows系统中:
set PROPERTY_NAME=propertyValue
gradlew.bat test
这些环境变量将会被Spring Boot应用作为默认的属性值。如果你想要在测试内部动态地设置环境变量,可以使用Environment
类或者System.setProperty
方法。
使用Environment
类:
@Autowired
private ConfigurableEnvironment environment;
@Before
public void setUp() {
environment.getPropertySources().addFirst(new MapPropertySource("testProperties",
Collections.singletonMap("property.name", "propertyValue")));
}
使用System.setProperty
方法:
@Before
public void setUp() {
System.setProperty("property.name", "propertyValue");
}
评论已关闭