私が一文で答えなければならない場合、これはSpringbootが意見を述べているためです。 AutoConfiguration
を介してpomにmongoの依存関係があることに気付くとすぐに、mongoへの接続を試みます。 クラス。
デフォルトの動作をオーバーライドして、SpringbootにMongoAutoConfigurationを実行しないように指示する場合は、この方法で実行できます
@SpringBootApplication(exclude=MongoAutoConfiguration.class)
public class YourMainApplication {
public static void main(String[] args) {
SpringApplication.run(TestApplication.class, args);
}
}
または、プロパティファイルのこの行でそれを行うことができます
spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration
上記のいずれかを実行すると、(テストだけでなく)アプリケーションからMongoAutoconfigurationが除外されます。つまり、アプリケーションを起動すると、mongoにアクセスできなくなります(これが必要な場合)。
SpringbootTest
以降 アノテーションはアプリケーションのコテキスト全体をロードし、このメインアプリケーションクラスを探します。一部の自動構成を除外している場合は、テストでも除外されます。したがって、mongoの問題に接続することはできません。
テストでのみこの自動構成を除外したい場合(アプリケーションの実行中に何も変更されないようにするため)、この方法で行うことができます
@TestPropertySource(properties=
{"spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration"})
@SpringBootTest
public class GreetingControllerTests {...}