sql >> Databasteknik >  >> NoSQL >> MongoDB

Hur man inaktiverar flapdoodle inbäddad mongodb i vissa tester

Embedded Mongo-demon startas med EmbeddedMongoAutoConfiguration . Du kan inaktivera demonstart i ett enda test genom att utesluta EmbeddedMongoAutoConfiguration från skanning:

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

    @Test
    public void test() {
    }
}

Jag skulle föredra en motsatt funktionalitet:starta inbäddad Mongo-demon på begäran. För att göra detta måste du utesluta EmbeddedMongoAutoConfiguration i produktionskod:

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

Lägg sedan till en kommentar i testkoden som kommer att aktivera inbäddad Mongo-demonstart:

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

Och kommentera ditt test:

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

    @Test
    public void test() {
    }
}



  1. Cloudera Operational Database Repplication i ett nötskal

  2. lagra bilder i mongodb med mongoose?? hur?

  3. Docker-compose - Redis vid 0.0.0.0 istället för 127.0.0.1

  4. Var man kan skriva och lagra mongoDB kart-/reduceringsfunktioner i java-projekt