gpt4 book ai didi

spring-boot - 如何使用 Spring 框架为 Junit 测试设置环境变量

转载 作者:行者123 更新时间:2023-12-04 02:57:04 24 4
gpt4 key购买 nike

我有一个简单地使用 System.getEnv 返回环境变量的类,我正在尝试为它编写一个 JUnit 测试,但我总是得到 null。我正在尝试将 application-test.yml 与所有变量集一起使用,并尝试了许多注释,例如

@RunWith(SpringJUnit4ClassRunner.class)
@TestPropertySource(locations="classpath:/application-test.yml")

还有许多其他但仍然没有成功。有谁知道如何简单地做到这一点?

最佳答案

有多种方法。

选项 1

如果您在 IDE(eclipse 或 IntelliJ IDEA)中运行测试,您可以在 IDE 中为测试设置变量。如果您使用的是 Maven,则可以通过 Surefire 插件设置系统属性 - https://maven.apache.org/surefire/maven-surefire-plugin/examples/system-properties.html

<project>
[...]
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.0</version>
<configuration>
<systemProperties>
<property>
<name>buildDir</name>
<value>${project.build.outputDirectory}</value>
</property>
</systemProperties>
</configuration>
</plugin>
</plugins>
</build>
[...]
</project>

选项 2

使用SpringEL

"classpath:config_#{systemProperties['env']}/db.properties" 

可在此处找到更多详细信息 - how to read System environment variable in Spring applicationContext

关于spring-boot - 如何使用 Spring 框架为 Junit 测试设置环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52678599/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com