강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của gabozanet1044
gabozanet1044

câu hỏi đã được viết

Phát triển ứng dụng web dựa trên Spring và JPA

Chuyển DB test sang PostgreSQL

테스트DB를 PostgreSQL 로 전환 후 테스트 수행시 오류

Viết

·

783

0

안녕하세요. 강의에 나온대로 진행 후 테스트 수행하니 아래와 같이 오류가 납니다. 무슨 문제일까요?

java.lang.ExceptionInInitializerError

at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)

at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)

at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)

at org.junit.platform.commons.util.ReflectionUtils.newInstance(ReflectionUtils.java:511)

at org.junit.jupiter.engine.execution.ConstructorInvocation.proceed(ConstructorInvocation.java:56)

at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131)

at org.junit.jupiter.api.extension.InvocationInterceptor.interceptTestClassConstructor(InvocationInterceptor.java:72)

at org.junit.jupiter.engine.execution.ExecutableInvoker.lambda$invoke$0(ExecutableInvoker.java:105)

at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106)

at org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64)

at org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45)

at org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37)

at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:104)

at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:77)

at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.invokeTestClassConstructor(ClassBasedTestDescriptor.java:333)

at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.instantiateTestClass(ClassBasedTestDescriptor.java:280)

at org.junit.jupiter.engine.descriptor.ClassTestDescriptor.instantiateTestClass(ClassTestDescriptor.java:77)

at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.instantiateAndPostProcessTestInstance(ClassBasedTestDescriptor.java:262)

at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$2(ClassBasedTestDescriptor.java:256)

at java.base/java.util.Optional.orElseGet(Optional.java:369)

at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$3(ClassBasedTestDescriptor.java:255)

at org.junit.jupiter.engine.execution.TestInstancesProvider.getTestInstances(TestInstancesProvider.java:29)

at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$prepare$0(TestMethodTestDescriptor.java:108)

at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)

at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare(TestMethodTestDescriptor.java:107)

at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare(TestMethodTestDescriptor.java:71)

at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$prepare$1(NodeTestTask.java:107)

at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)

at org.junit.platform.engine.support.hierarchical.NodeTestTask.prepare(NodeTestTask.java:107)

at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:75)

at java.base/java.util.ArrayList.forEach(ArrayList.java:1540)

at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:38)

at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:139)

at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)

at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:125)

at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:135)

at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:123)

at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)

at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:122)

at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:80)

at java.base/java.util.ArrayList.forEach(ArrayList.java:1540)

at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:38)

at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:139)

at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)

at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:125)

at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:135)

at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:123)

at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)

at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:122)

at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:80)

at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:32)

at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57)

at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:51)

at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:248)

at org.junit.platform.launcher.core.DefaultLauncher.lambda$execute$5(DefaultLauncher.java:211)

at org.junit.platform.launcher.core.DefaultLauncher.withInterceptedStreams(DefaultLauncher.java:226)

at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:199)

at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:132)

at com.intellij.junit5.JUnit5IdeaTestRunner.startRunnerWithArgs(JUnit5IdeaTestRunner.java:69)

at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:33)

at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:230)

at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:58)

Caused by: org.testcontainers.containers.ContainerLaunchException: Container startup failed

at org.testcontainers.containers.GenericContainer.doStart(GenericContainer.java:322)

at org.testcontainers.containers.GenericContainer.start(GenericContainer.java:302)

at com.etopia.studyolle.infra.AbstractContainerBaseTest.<clinit>(AbstractContainerBaseTest.java:10)

... 63 more

Caused by: org.testcontainers.containers.ContainerFetchException: Can't get Docker image: RemoteDockerImage(imageNameFuture=java.util.concurrent.CompletableFuture@28486680[Completed normally], imagePullPolicy=DefaultPullPolicy(), dockerClient=LazyDockerClient.INSTANCE)

at org.testcontainers.containers.GenericContainer.getDockerImageName(GenericContainer.java:1265)

at org.testcontainers.containers.GenericContainer.logger(GenericContainer.java:600)

at org.testcontainers.containers.GenericContainer.doStart(GenericContainer.java:311)

... 65 more

Caused by: java.lang.IllegalStateException: Could not find a valid Docker environment. Please see logs and check configuration

at org.testcontainers.dockerclient.DockerClientProviderStrategy.lambda$getFirstValidStrategy$3(DockerClientProviderStrategy.java:163)

at java.base/java.util.Optional.orElseThrow(Optional.java:408)

at org.testcontainers.dockerclient.DockerClientProviderStrategy.getFirstValidStrategy(DockerClientProviderStrategy.java:155)

at org.testcontainers.DockerClientFactory.getOrInitializeStrategy(DockerClientFactory.java:113)

at org.testcontainers.DockerClientFactory.client(DockerClientFactory.java:134)

at org.testcontainers.LazyDockerClient.getDockerClient(LazyDockerClient.java:14)

at org.testcontainers.LazyDockerClient.listImagesCmd(LazyDockerClient.java:12)

at org.testcontainers.images.LocalImagesCache.maybeInitCache(LocalImagesCache.java:68)

at org.testcontainers.images.LocalImagesCache.get(LocalImagesCache.java:32)

at org.testcontainers.images.AbstractImagePullPolicy.shouldPull(AbstractImagePullPolicy.java:18)

at org.testcontainers.images.RemoteDockerImage.resolve(RemoteDockerImage.java:62)

at org.testcontainers.images.RemoteDockerImage.resolve(RemoteDockerImage.java:25)

at org.testcontainers.utility.LazyFuture.getResolvedValue(LazyFuture.java:20)

at org.testcontainers.utility.LazyFuture.get(LazyFuture.java:27)

at org.testcontainers.containers.GenericContainer.getDockerImageName(GenericContainer.java:1263)

... 67 more

javaspringJPAthymeleafspring-boot

Câu trả lời 7

1

오 겁나 잘된다 ㅠㅠㅠ 다들 감사합니다

1

저도 에러났었는데요..

Docker 설치해서 실행 시켜놓은 후에

testcontainers core(https://mvnrepository.com/artifact/org.testcontainers/testcontainers)와 testcontainers postgreSQL(https://mvnrepository.com/artifact/org.testcontainers/postgresql)을 둘 다 같은 최신버전으로 변경해주니 되네요.

1

whiteship님의 프로필 이미지
whiteship
Người chia sẻ kiến thức

네 도커는 설치해야죠. TestContainers 버전을 이 강의에 나오는 버전 말고 좀 더 최신 버전으로 사용해 보세요.

<dependency>

    <groupId>org.testcontainers</groupId>

    <artifactId>testcontainers</artifactId>

    <version>1.15.0</version>

    <scope>test</scope>

</dependency>

0

저도 작업 중 동일한 에러가 났는데요!

testcontainers - postgresql 버전만 변경하셨나요?
1.13.0 안되어서 1.15.2 하였는데 똑같이 에러가 나네요ㅠㅠ

0

https://mvnrepository.com/artifact/org.testcontainers

도커와는 별개로 위의 링크에서 TestContainers 최신 버전 사용 시 해결 되었습니다.

0

저도 같은 에러가 납니다. 
혹시 해결하셨나요? 
TestContainers를 사용하기 위해서는 도커를 설치해야 하나요? 
혹시나 해서 도커를 설치했는데도 에러가 그대로 발생하네요 ㅠ

0

whiteship님의 프로필 이미지
whiteship
Người chia sẻ kiến thức

다음 에러 메시지를 보니 도커 관련 문제로 보이는데 정확히는 모르겠네요. 네트워크 문제로 도커 이미지를 다운받지 못한건지.. 도커가 아에 설치가 안되있는건지 확인해 보시면 좋겠습니다.


Caused by: org.testcontainers.containers.ContainerFetchException: Can't get Docker image: RemoteDockerImage(imageNameFuture=java.util.concurrent.CompletableFuture@28486680[Completed normally], imagePullPolicy=DefaultPullPolicy(), dockerClient=LazyDockerClient.INSTANCE)

Hình ảnh hồ sơ của gabozanet1044
gabozanet1044

câu hỏi đã được viết

Đặt câu hỏi