2017-12-06 2 views
0

私はSpring Boot Mock MVCユニットテストを実装しようとしていますが、リモートサービスへの接続を避けるためにspring-cloud-consul自動設定を除外したいと考えています。私は以下でこれを達成することができるはずのように見えますSpringの自動設定をWebMvcTestから除外する方法

@RunWith(SpringRunner.class) 
@WebMvcTest(value = MyController.class, excludeAutoConfiguration = ConsulAutoConfiguration.class) 
@AutoConfigureMockMvc(addFilters = false, printOnlyOnFailure = false) 

しかし、これはまだ私がオフライン時に、このユニットテストを実行することができませんなどのリモート領事に接続しようとしているように見えます。

Caused by: org.apache.http.conn.ConnectTimeoutException: Connect to consul.****:8500 [consul.****/**.**.**.**] failed: connect timed out 
    at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:150) 
    at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:353) 
    at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:380) 
    at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:236) 

私はこれが除外に記載されて見ていないですユニットテストの実行構成に-DDEBUGを追加する場合:この設定は、ブートストラップ時にロードされるため、これがある場合、私は疑問に思って

Positive matches: 
----------------- 

ConsulAutoConfiguration matched: 
     - AllNestedConditions 2 matched 0 did not; NestedCondition on ConditionalOnConsulEnabled.OnConsulEnabledCondition.FoundClass @ConditionalOnClass found required class 'com.ecwid.consul.v1.ConsulClient'; @ConditionalOnMissingClass did not find unwanted class; NestedCondition on ConditionalOnConsulEnabled.OnConsulEnabledCondition.FoundProperty @ConditionalOnProperty (spring.cloud.consul.enabled) matched (ConditionalOnConsulEnabled.OnConsulEnabledCondition) 

Exclusions: 
----------- 

    None 

を?

ご協力いただきありがとうございます。

答えて

0

テストに次の注釈を追加することで回避策を見つけることができました。

@TestPropertySource(properties="spring.cloud.consul.enabled=false") 
関連する問題