gpt4 book ai didi

spring-boot - 如何在 spring-boot 配置中加载 application.yaml 配置以进行 selenium 测试

转载 作者:行者123 更新时间:2023-12-03 07:05:36 27 4
gpt4 key购买 nike

我正在尝试对我的 spring-boot 应用程序运行 Selenium 测试。我想使用我的 application.yml 和 application-test.yml 定义的属性启动应用程序。但是,默认情况下不会发生这种情况。

我尝试这样做 Dave Syer suggested并实现了一个 ApplicationContextInitializer,它使用 YamlPropertySourceLoader 读取 application.yml 和 application-test.yml 文件。

这似乎没有任何效果 - 在我的应用程序测试中将服务器端口设置为 9000 没有效果。

下面是我的测试基类代码:

@ContextConfiguration(classes = {TestConfiguration.class}, initializers = {TestApplicationYamlLoaderApplicationContextInitializer.class})
@SharedDriver(type = SharedDriver.SharedType.ONCE)
@ActiveProfiles({"test"})
public abstract class IntegrationBase extends AbstractTestNGSpringContextTests {
....
}

下面是我的 ApplicationContextInitializer 的代码:

public class TestApplicationYamlLoaderApplicationContextInitializer implements ApplicationContextInitializer<ConfigurableApplicationContext> {
@Override
public void initialize(ConfigurableApplicationContext applicationContext) {
ConfigurableEnvironment env = applicationContext.getEnvironment();

YamlPropertySourceLoader loader = YamlPropertySourceLoader.matchAllLoader();
PropertySource applicationYamlPropertySource = loader.load("application.yml", new FileSystemResource("src/main/resources/application.yml"));
PropertySource testProfileYamlPropertySource = loader.load("application.yml", new FileSystemResource("src/main/resources/application-test.yml"));

env.getPropertySources().addFirst(applicationYamlPropertySource);
env.getPropertySources().addFirst(testProfileYamlPropertySource);
System.out.println("woohoo!");
}

}

以及 application-test.yml

server:
port: 9000

最佳答案

@ContextConfiguration 不知道 Spring Boot 初始值设定项。您尝试过@SpringApplicationConfiguration吗? (那么您就不需要自定义初始值设定项。)

关于spring-boot - 如何在 spring-boot 配置中加载 application.yaml 配置以进行 selenium 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21483466/

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