gpt4 book ai didi

java - 在 Karate 配置中使用 Spring Boot 的配置

转载 作者:行者123 更新时间:2023-11-30 06:06:36 26 4
gpt4 key购买 nike

我有一个 Spring Boot 应用程序,可以在主源集中以编程方式启动 Karate 测试。该应用程序应该为每个环境配置几个 Karate 将使用的 URL。我还有一个 spring-cloud-config 服务器,用于加载与当前环境(dev、prod 等)相对应的 yaml 属性文件。因此,我的属性不是项目的本地属性,并且在 Spring Boot 属性组件之外无法读取。

考虑到所有这些,我希望我的 Karate 测试使用这些可配置的 URL,但我找不到在 Karate 上下文中使用包含我的属性的 Spring Boot 组件的方法。

作为进一步信息,要以编程方式运行 Karate 测试,我使用 JUnitCore#runClasses :

@SpringBootApplication
public class MyApplication {

public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);

// Run all tests in the application
Result result = JUnitCore.runClasses(KarateApplicationRunner.class);
}
}

KarateApplicationRunner 是启动测试并生成报告的运行程序。

如果有人有一个可行的想法,那会让我很高兴:)。

最佳答案

我真的没有这些特定的 Spring Boot 测试基础设施的经验。但抛出一些想法。

事实上,我发现 Spring Boot 有时会引入“太多魔力”。因此,我采取的一种方法是使用“java 第一原则”并引入一个 prod bean,其唯一目的是使测试更容易从单元测试启动的应用程序中获取信息:

ServerStartedInitializingBean.java - 示例使用 ServerStart.java

如果您查看这些测试,您可能会得到更多想法:PaymentService.java - 当您使用 main(String[] args) 启动 Spring Boot 应用程序时,您可以直接控制配置。

如果在 Spring Boot 初始化代码中,您可以设置一个或两个足以将数据传递给 Karate 的 System.property

另请参阅此答案:https://stackoverflow.com/a/45962035/143475

关于java - 在 Karate 配置中使用 Spring Boot 的配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51176579/

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