Stub Runner Spring Cloud
Stubbing 服務發現
Stub Runner Spring Cloud
最重要的功能是它可以 Stub
-
DiscoveryClient
-
ReactorServiceInstanceLoadBalancer
這表示,無論您使用 Zookeeper、Consul、Eureka 或其他任何工具,您都不需要在測試中使用它。我們正在啟動您的依賴項的 WireMock 實例,並且我們正在告訴您的應用程式,每當您使用 Feign
時,直接載入平衡的 RestTemplate
或 DiscoveryClient
,以呼叫這些 Stub 伺服器,而不是呼叫真正的服務發現工具。
測試 Profile 和服務發現
在您的整合測試中,您通常不希望呼叫發現服務(例如 Eureka)或 Config Server。這就是為什麼您要建立一個額外的測試組態,您要在其中停用這些功能。
由於 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");
}
其他組態
您可以使用 stubrunner.idsToServiceIds:
映射將 Stub 的 artifactId
與應用程式名稱相符。
預設情況下,所有服務發現都會被 Stub。這表示,無論您是否有現有的 DiscoveryClient ,其結果都會被忽略。但是,如果您想重複使用它,您可以將 stubrunner.cloud.delegate.enabled 設定為 true ,然後您現有的 DiscoveryClient 結果將與 Stub 的結果合併。 |
Stub Runner 使用的預設 Maven 組態可以透過設定以下系統屬性或設定相應的環境變數來調整
-
maven.repo.local
:自訂 Maven 本地儲存庫位置的路徑 -
org.apache.maven.user-settings
:自訂 Maven 使用者設定位置的路徑 -
org.apache.maven.global-settings
:Maven 全域設定位置的路徑