此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 spring-cloud-contract 4.1.5spring-doc.cadn.net.cn

Stub Runner Spring Cloud

Stubbing 服务发现

最重要的特点Stub Runner Spring Cloud是它存根的事实:spring-doc.cadn.net.cn

这意味着,无论您使用的是 Zookeeper、Consul、Eureka 还是任何东西 否则,您在测试中不需要它。我们正在启动您的 dependencies 的 Dependencies,并且我们会告诉您的应用程序,无论您何时使用Feign,以加载 平衡RestTemplateDiscoveryClient直接调用这些存根服务器 而不是调用真正的 Service Discovery 工具。spring-doc.cadn.net.cn

测试配置文件和服务发现

在集成测试中,您通常不想调用任何一个发现服务(例如 Eureka) 或 Config Server。因此,您需要创建一个额外的测试配置,并在其中禁用 这些功能。spring-doc.cadn.net.cn

由于spring-cloud-commons, 为此,您必须禁用这些属性 在如下例(对于 Eureka)的 static 块中:spring-doc.cadn.net.cn

    //Hack to work around https://github.com/spring-cloud/spring-cloud-commons/issues/156
    static {
        System.setProperty("eureka.client.enabled", "false");
        System.setProperty("spring.cloud.config.failFast", "false");
    }

其他配置

您可以匹配artifactId的存根替换为您的应用程序名称,方法是使用stubrunner.idsToServiceIds:地图。spring-doc.cadn.net.cn

默认情况下,所有服务发现都是存根的。这意味着,无论您是否拥有 现有的DiscoveryClient,则其结果将被忽略。但是,如果您想重用它,则可以设置stubrunner.cloud.delegate.enabledtrue,然后是现有的DiscoveryClient结果是 与存根的合并。

Stub Runner 使用的默认 Maven 配置可以调整 通过设置以下系统属性或设置相应的环境变量:spring-doc.cadn.net.cn