此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 spring-cloud-contract 4.1.5! |
Stub Runner Spring Cloud
Stubbing 服务发现
最重要的特征是它存根:Stub Runner Spring Cloud
-
DiscoveryClient
-
ReactorServiceInstanceLoadBalancer
这意味着,无论您使用的是 Zookeeper、Consul、Eureka 还是任何东西
否则,您在测试中不需要它。我们正在启动您的
依赖项,并且我们会告诉您的应用程序,无论何时使用 ,都要加载
balanced 或直接调用这些存根服务器
而不是调用真正的 Service Discovery 工具。Feign
RestTemplate
DiscoveryClient
测试配置文件和服务发现
在集成测试中,您通常不想调用任何一个发现服务(例如 Eureka) 或 Config Server。因此,您需要创建一个额外的测试配置,并在其中禁用 这些功能。
由于 spring-cloud-commons
的某些限制,
为此,您必须禁用这些属性
在如下例(对于 Eureka)的 static 块中:
//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");
}
其他配置
您可以使用 map 将存根的 与应用程序的名称进行匹配。artifactId
stubrunner.idsToServiceIds:
默认情况下,所有服务发现都是存根的。这意味着,无论您是否拥有
一个 existing ,其结果将被忽略。但是,如果要重用它,则可以设置为 ,然后现有结果为
与存根的合并。DiscoveryClient stubrunner.cloud.delegate.enabled true DiscoveryClient |
Stub Runner 使用的默认 Maven 配置可以调整 通过设置以下系统属性或设置相应的环境变量:
-
maven.repo.local
:自定义 maven 本地存储库位置的路径 -
org.apache.maven.user-settings
:自定义 maven 用户设置位置的路径 -
org.apache.maven.global-settings
:maven 全局设置位置的路径