sql >> Database >  >> NoSQL >> MongoDB

Hoe flapdoodle embedded mongodb in bepaalde tests uit te schakelen?

Embedded Mongo-daemon wordt gestart met EmbeddedMongoAutoConfiguration . U kunt het starten van daemon in een enkele test uitschakelen door EmbeddedMongoAutoConfiguration uit te sluiten van scan:

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

    @Test
    public void test() {
    }
}

Ik zou de voorkeur geven aan een tegenovergestelde functionaliteit:start embedded Mongo-daemon op aanvraag. Om dit te doen, moet u EmbeddedMongoAutoConfiguration . uitsluiten in productiecode:

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

Voeg vervolgens in de testcode een annotatie toe die de ingebouwde Mongo-daemon start:

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

En annoteer uw test:

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

    @Test
    public void test() {
    }
}



  1. MongoDB $nin Query-operator

  2. Meteor.js mongodb-versie

  3. Vergelijk tussen 2 velden van een document in MongoDB

  4. Mongoose:heeft geen toegang tot de ingevulde waarde