MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Come disabilitare il mongodb incorporato di flapdoodle in alcuni test

Il demone Embedded Mongo viene avviato con EmbeddedMongoAutoConfiguration . Puoi disabilitare l'avvio del demone in un singolo test escludendo EmbeddedMongoAutoConfiguration dalla scansione:

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

    @Test
    public void test() {
    }
}

Preferirei una funzionalità opposta:avviare il demone Mongo incorporato su richiesta. Per fare ciò devi escludere EmbeddedMongoAutoConfiguration nel codice di produzione:

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

Quindi nel codice di test aggiungi un'annotazione che abiliterà l'avvio del demone Mongo incorporato:

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

E annota il tuo test:

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

    @Test
    public void test() {
    }
}