Stub Runner Spring Cloud

Stub Runner 可以與 Spring Cloud 整合。

有關實際示例,請參閱

模擬服務發現

Stub Runner Spring Cloud 最重要的特性是它模擬了

  • DiscoveryClient

  • ReactorServiceInstanceLoadBalancer

這意味著,無論您使用 Zookeeper、Consul、Eureka 還是其他任何工具,您在測試中都不需要它們。我們正在啟動您的依賴項的 WireMock 例項,並告訴您的應用程式,無論何時您使用 Feign 來載入負載均衡的 RestTemplate 或直接使用 DiscoveryClient,都應呼叫這些模擬伺服器,而不是呼叫真實的服務發現工具。

測試配置檔案和服務發現

在您的整合測試中,您通常不想呼叫任何發現服務(例如 Eureka)或配置伺服器。這就是為什麼您要建立一個額外的測試配置,其中停用這些功能。

由於 spring-cloud-commons 的某些限制,要實現這一點,您必須在靜態塊中停用這些屬性,例如以下示例(針對 Eureka)

    //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");
    }

附加配置

您可以使用 spring.cloud.contract.stubrunner.idsToServiceIds: 對映將存根的 artifactId 與您的應用程式名稱匹配。

預設情況下,所有服務發現都會被模擬。這意味著,無論您是否有現有的 DiscoveryClient,其結果都會被忽略。但是,如果您想重用它,您可以將 spring.cloud.contract.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 全域性設定位置的路徑

© . This site is unofficial and not affiliated with VMware.