java - 在空手道配置中使用 Spring Boot 的配置
问题描述
我有一个 Spring Boot 应用程序,它在主源集中以编程方式启动空手道测试。这个应用程序应该为每个环境配置几个空手道将使用的 URL。我还有一个 spring-cloud-config 服务器,它加载与当前环境(dev、prod 等)对应的 yaml 属性文件。因此,我的属性不是项目本地的,并且在 Spring Boot 属性组件之外不可读。
考虑到所有这些,我希望我的空手道测试使用这些可配置的 URL,但我找不到在空手道上下文中使用包含我的属性的 Spring Boot 组件的方法。
作为进一步的信息,要以编程方式运行空手道测试,我正在使用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 - 当您使用启动 Spring Boot 应用程序时,main(String[] args)
您可以直接控制配置。
如果从您的 Spring Boot 初始化代码中,您可以设置一System.property
两个足以将数据传递给空手道。
推荐阅读
- android - 如果每个字段都有键值对,如何设置微调器选择
- javascript - 使用 Vue.JS/Vuex 在哪里存储加载/错误状态?
- python - IOError: [Errno 121] 远程 I/O 错误
- angular - 角度延迟加载问题
- java - 在自定义 Listview 适配器中使用多个视图
- ios - 如何在 swift 4 中过滤 2d 模型数组,
- rabbitmq - RabbitMQ 通过 Spring 的 RabbitAdmin 调整 HA 队列
- android - 在 BottomNavigation 中快速切换它们时出现片段崩溃
- php - 获取文本框的值并传输到控制器(Codeigniter)PHP
- visual-studio-code - Visual Studio Code IntelliSense 不适用于 Node.js