[英]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.