在 karate config 中使用 Spring Boot 的配置
Using Spring Boot's configuration in karate config
我有一个 Spring 引导应用程序,它在主源集中以编程方式启动空手道测试。此应用程序应该为每个环境配置几个空手道将使用的 URL。我还有一个 spring-cloud-config 服务器,它加载与当前环境(dev、prod 等)相对应的 yaml 属性 文件。因此,我的属性不是项目的本地属性,并且在 Spring Boot 属性 组件之外不可读。
考虑到所有这些,我希望我的空手道测试使用这些可配置的 URL,但我找不到在空手道上下文中使用包含我的属性的 Spring 引导组件的方法。
作为进一步的信息,运行 空手道编程测试我正在使用 JUnitCore#运行Classes :
@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 是 运行ner 启动测试并生成报告。
如果有人有一个可行的想法,那会让我开心:)。
我真的没有这些特殊的 Spring 启动测试基础设施的经验。但抛出一些想法。
事实上,我发现 Spring Boot 在这种时候引入了“太多的魔力”。因此,我采用的一种方法是使用“java 第一原则”并引入一个 prod bean,其唯一目的是使测试更容易从单元测试启动的应用程序中获取信息:
ServerStartedInitializingBean.java - and example use ServerStart.java
如果您查看这些测试,您可能会得到更多想法:PaymentService.java - 当您使用 main(String[] args)
启动 Spring 引导应用程序时,您可以直接控制配置。
如果从您的 Spring 启动初始化代码中,您可以设置一个 System.property
或两个足以将数据传递给空手道的
另请参阅此答案:
我有一个 Spring 引导应用程序,它在主源集中以编程方式启动空手道测试。此应用程序应该为每个环境配置几个空手道将使用的 URL。我还有一个 spring-cloud-config 服务器,它加载与当前环境(dev、prod 等)相对应的 yaml 属性 文件。因此,我的属性不是项目的本地属性,并且在 Spring Boot 属性 组件之外不可读。
考虑到所有这些,我希望我的空手道测试使用这些可配置的 URL,但我找不到在空手道上下文中使用包含我的属性的 Spring 引导组件的方法。
作为进一步的信息,运行 空手道编程测试我正在使用 JUnitCore#运行Classes :
@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 是 运行ner 启动测试并生成报告。
如果有人有一个可行的想法,那会让我开心:)。
我真的没有这些特殊的 Spring 启动测试基础设施的经验。但抛出一些想法。
事实上,我发现 Spring Boot 在这种时候引入了“太多的魔力”。因此,我采用的一种方法是使用“java 第一原则”并引入一个 prod bean,其唯一目的是使测试更容易从单元测试启动的应用程序中获取信息:
ServerStartedInitializingBean.java - and example use ServerStart.java
如果您查看这些测试,您可能会得到更多想法:PaymentService.java - 当您使用 main(String[] args)
启动 Spring 引导应用程序时,您可以直接控制配置。
如果从您的 Spring 启动初始化代码中,您可以设置一个 System.property
或两个足以将数据传递给空手道的
另请参阅此答案: