首页 文章

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

提问于
浏览
1

我有一个Spring Boot应用程序,它在主源代码集中以编程方式启动Karate测试 . 该应用程序应该为每个环境配置几个将由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 回答

  • 1

    我真的没有这些特殊的Spring Boot测试基础知识的经验 . 但抛出一些想法 .

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

    ServerStartedInitializingBean.java - 示例使用ServerStart.java

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

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

相关问题