MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

So deaktivieren Sie die in Flapdoodle eingebettete Mongodb in bestimmten Tests

Der eingebettete Mongo-Daemon wird mit EmbeddedMongoAutoConfiguration gestartet . Sie können den Daemon-Start in einem einzelnen Test deaktivieren, indem Sie EmbeddedMongoAutoConfiguration ausschließen aus Scan:

@RunWith(SpringRunner.class)
@SpringBootTest
@TestPropertySource(properties = "spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.mongo.embedded.EmbeddedMongoAutoConfiguration")
public class DoNotStartMongoTest {
    //...

    @Test
    public void test() {
    }
}

Ich würde eine entgegengesetzte Funktionalität bevorzugen:Starten Sie den eingebetteten Mongo-Daemon bei Bedarf. Dazu müssen Sie EmbeddedMongoAutoConfiguration ausschließen im Produktionscode:

@EnableMongoRepositories
@SpringBootApplication(exclude = EmbeddedMongoAutoConfiguration.class)
public class MySpringBootApplication {
    public static void main(String[] args) {
        SpringApplication.run(MySpringBootApplication.class, args);
    }
}

Fügen Sie dann im Testcode eine Anmerkung hinzu, die den Start des eingebetteten Mongo-Daemons ermöglicht:

@Retention(RUNTIME)
@Target(TYPE)
@Import(EmbeddedMongoAutoConfiguration.class)
public @interface EnableEmbeddedMongo {
}

Und kommentieren Sie Ihren Test:

@RunWith(SpringRunner.class)
@SpringBootTest
@EnableEmbeddedMongo
public class StartMongoTest {
    //...

    @Test
    public void test() {
    }
}