MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Comment désactiver mongodb intégré à flapdoodle dans certains tests

Le démon Mongo intégré est démarré avec EmbeddedMongoAutoConfiguration . Vous pouvez désactiver le démarrage du démon dans un seul test en excluant EmbeddedMongoAutoConfiguration à partir de l'analyse :

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

    @Test
    public void test() {
    }
}

Je préférerais une fonctionnalité opposée:démarrer le démon Mongo intégré à la demande. Pour ce faire, vous devez exclure EmbeddedMongoAutoConfiguration dans le code de fabrication :

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

Ensuite, dans le code de test, ajoutez une annotation qui activera le démarrage du démon Mongo intégré :

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

Et annotez votre test :

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

    @Test
    public void test() {
    }
}