简体   繁体   中英

Flapdoodle Embedded Mongo process won't start

I'm trying to have an Embedded Mongo instance run while performing my unit tests. I am using the flapdoodle embedded mongo package to achieve this, but getting an error while attempting to start the tests.

My build.gradle dependencies:

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-data-mongodb'
    implementation 'org.springframework.boot:spring-boot-starter-oauth2-resource-server'
    implementation 'org.springframework.boot:spring-boot-starter-web'
    compileOnly 'org.projectlombok:lombok'
    annotationProcessor 'org.projectlombok:lombok'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
    testImplementation 'de.flapdoodle.embed:de.flapdoodle.embed.mongo:3.3.0'
}

And the test file:

@SpringBootTest
public class UserServiceTest {

    @Autowired
    UserServiceImpl userService;

    @MockBean
    MongoTemplate mongoTemplate;

    @MockBean
    UserRepository userRepository;

    @Test
    public void contextLoads() {
        assertThat(userService).isNotNull();
        assertThat(userRepository).isNotNull();
    }

    public User getUser(String authId) {
        User user = new User();
        user.setAuth0Id(authId);
        user.setUserImage("img");
        user.setEmail("email@mail.com");
        user.setName("User 1");
        user.setId("1");
        return user;
    }

    @Test
    public void findByAuth0IdReturnsCorrectly() {
        String id = "helloIamTheId";
        User user = getUser(id);
        when(userRepository.findByAuth0Id(id)).thenReturn(Optional.of(user));
        assertThat(userService.findByAuth0Id(id)).isEqualTo(Optional.of(user));
    }
}

The error:

Caused by: java.lang.RuntimeException: Could not start process: <EOF>
    at de.flapdoodle.embed.mongo.AbstractMongoProcess.onAfterProcessStart(AbstractMongoProcess.java:79) ~[de.flapdoodle.embed.mongo-3.3.0.jar:na]
    at de.flapdoodle.embed.process.runtime.AbstractProcess.<init>(AbstractProcess.java:113) ~[de.flapdoodle.embed.process-3.1.6.jar:na]
    at de.flapdoodle.embed.mongo.AbstractMongoProcess.<init>(AbstractMongoProcess.java:53) ~[de.flapdoodle.embed.mongo-3.3.0.jar:na]
    at de.flapdoodle.embed.mongo.MongodProcess.<init>(MongodProcess.java:50) ~[de.flapdoodle.embed.mongo-3.3.0.jar:na]
    at de.flapdoodle.embed.mongo.MongodExecutable.start(MongodExecutable.java:44) ~[de.flapdoodle.embed.mongo-3.3.0.jar:na]
    at de.flapdoodle.embed.mongo.MongodExecutable.start(MongodExecutable.java:34) ~[de.flapdoodle.embed.mongo-3.3.0.jar:na]
    at de.flapdoodle.embed.process.runtime.Executable.start(Executable.java:109) ~[de.flapdoodle.embed.process-3.1.6.jar:na]
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na]
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
    at java.base/java.lang.reflect.Method.invoke(Method.java:566) ~[na:na]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1930) ~[spring-beans-5.3.15.jar:5.3.15]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1872) ~[spring-beans-5.3.15.jar:5.3.15]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1800) ~[spring-beans-5.3.15.jar:5.3.15]
    ... 100 common frames omitted

Thanks

I had the same issue and It seems related to version 3.3.0.

Using 3.2.8 worked for me:

de.flapdoodle.embed:de.flapdoodle.embed.mongo:3.2.8

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM