我的问题简而言之:如何在不同的环境中运行具有不同属性的测试?
详细版本:我已经编写了一个JUnit-Test,它在类顶部注解如下:
@RunWith(SpringRunner.class)
@SpringBootTest( classes=RunServer.class, webEnvironment = WebEnvironment.DEFINED_PORT )
@TestPropertySource(locations="file:conf/application-junit.properties")
public class MyDbTest {...
在当前的conf/www.example.com中,有针对端口5400上的数据库连接的语句。application.junit.propertiesthere is the statement for the database connection on port 5400.
但是现在我发现我不仅在本地运行测试,而且还在另一台机器上运行测试,比如Jenkins,其数据库端口位于5500。
我确实有一个具有正确端口的属性文件,该文件位于conf/www.example.com**。application-jenkins.properties**.
现在我想知道如何在源代码中为**@TestPropertySource(locations =...)**设置正确的值?
顺便说一句,这对于非测试代码的执行没有任何问题,我只设置为参数
__java -jar myjar.jar --spring.config.location=<PATH_TO_PROPERTIES_FILE>__
我的属性文件不在类路径中。它们被设置为绝对文件路径。
谢谢你们的帮助。
1条答案
按热度按时间ni65a41a1#
您不应指定:
这将在测试类中硬编码
junit
Sping Boot 配置文件。相反,您应该根据在执行
mvn test
时设置的概要文件来执行测试,例如:application-junit.properties
或application-jenkins.properties
将自动用于根据spring.profiles.active
值集创建应用程序上下文。