2016-09-21 8 views
0

下記のクラス(ServiceDiscoveryConfiguration)は決して利用されていません。 @EnableDiscoveryClientを削除してもセットアップを完全に回避しようとしても、引き続きConsulに接続しようとします。春の領事 - ユニットテストの無効化

私のために働いた唯一のことは完全に領事のMavenのdepdencyを削除した

<dependency> 
    <groupId>org.springframework.cloud</groupId> 
    <artifactId>spring-cloud-starter-consul-all</artifactId> 
</dependency> 
<dependency> 
    <groupId>org.springframework.cloud</groupId> 
    <artifactId>spring-cloud-starter-feign</artifactId> 
</dependency> 

私がいない場合は、プロファイルと注釈セットアップからユニットテストのために実行するための領事を防ぐために行うことができますか?

オリジナル

私はSpring Consulを使用したアプリケーションを持っています。 は、私はこのような発見を可能にするように設定されているクラス:私は間違っていないです場合は、この、領事部分を

@Profile ("!" + Profiles.UNIT_TEST) 
@Configuration 
@EnableDiscoveryClient 
public class ServiceDiscoveryConfiguration { 
} 

を無効にする必要があります。ベーステストクラス(すべてのユニットテストの間で共有されるabstract)は、次のアノテーションでセットアップされます。これは私がだと思うのですが、問題はです。 com.ecwid.consul.transport.TransportException:

によって引き起こさ:私は私のテストを実行すると

@SpringBootTest (classes = Service.class) 
@WebAppConfiguration 
@TestExecutionListeners (...) 
@DirtiesContext 
@ActiveProfiles (Profiles.UNIT_TEST) 
@Test (...) 
public abstract class AbstractBootTest extends AbstractTestNGSpringContextTests { 
    // ... 
} 

私が手 java.net.ConnectException:接続が

これを拒否しましたプロファイルのアクティブ化が機能していないとか、@Profile仕様の!オペレータを使用しているシンタックスが、私が思っていたと思われることをしていないと考えています。ルート実行クラス自体には、適切なパッケージがスキャンされていることがわかっている@ComponentScan注釈を含む基本的な注釈があります。

アシスタンス?

答えて

1

それをしようとすることですあなたは

経由して無効にすることができます
@TestPropertySource(properties = {"spring.cloud.consul.config.enabled=false"}) 
0

プロファイルアノテーションはBeanの@Profileアノテーションは無視されているので、それは、重要である

@Profile ("!" + Profiles.UNIT_TEST) 

プロファイルの活性化はまた、

@ActiveProfiles (Profiles.UNIT_TEST) 
あなたはComponentScanを使用している書いた

をOKに見えるが正しいですBeanが@Bean注釈付きメソッドでインスタンス化されている場合。もう一度チェックしてみてください。これは起こらないのですか?あなたは試すことができ、問題絞り込むこと

は、それが、これは本当にの原因であるかどうかを確認するために@EnableDiscoveryClientを削除するインスタンス化またはない

されるかどうかを確認するために、ServiceDiscoveryConfigurationのコンストラクタにブレークポイントを設定しましたあなたの問題

+0

私はこれがプロファイル関連ではないと思います。私はMavenの依存関係を削除しなければならないので、私の質問を更新しています。 –

+0

デバッグ後、クラスは全くヒットしません。特定の設定オプションを無視しているようなものです。 –

0

問題は、あなたがクラスパスに、ばね領事を持っている場合、それはとにかく自動設定に

関連する問題