在空手道配置中使用Spring Boot的配置

时间:2018-07-04 15:02:45

标签: java spring-boot karate

我有一个Spring Boot应用程序,可在主要源代码集中以编程方式启动空手道测试。该应用程序应该为每个环境配置Karate将使用的几个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 是启动测试并生成报告的跑步者。

如果某人有一个可行的主意,那将是我的事业:)

1 个答案:

答案 0 :(得分:1)

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

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

ServerStartedInitializingBean.java-例如使用ServerStart.java

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

如果从您的Spring Boot初始化代码中,您可以设置一个System.property,足以将数据传递给空手道。