繁体   English   中英

Flapdoodle 嵌入式 Mongo 进程无法启动

[英]Flapdoodle Embedded Mongo process won't start

我正在尝试在执行单元测试时运行 Embedded Mongo 实例。 我正在使用 flapdoodle 嵌入式 mongo package 来实现这一点,但在尝试开始测试时出现错误。

我的 build.gradle 依赖项:

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'
}

和测试文件:

@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));
    }
}

错误:

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

谢谢

我有同样的问题,它似乎与版本 3.3.0 有关。

使用 3.2.8 对我有用:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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