大佬教程收集整理的这篇文章主要介绍了无法在 GoCD 上实例化测试容器,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试使用 TESTContainers 和 spring-boot 运行 AWS DynamoDB 以进行测试。它使用 Docker 引擎 19.03.13 及更高版本,Java 15 在我的 MAC 上成功运行和执行测试。不幸的是,它在尝试在 GoCD 上运行时失败。详情如下。
摇篮:
testImplementation 'org.TESTContainers:TESTContainers:1.15.3'
testImplementation 'org.TESTContainers:junit-jupiter:1.15.3
'
Java/Spring:
@TESTContainers
@TesTinstance(PER_CLASS)
@SpringBoottest()
public class DynamodbTESTContainer {
protected AmazonDynamoDB amazonDynamoDB;
protected ApplicationInfoRepo applicationInfoRepo;
@Container
static final GenericContainer dynamoDb = new GenericContainer("amazon/dynamodb-local:1.16.0")
.withCommand("-jar DynamoDBLocal.jar -inMemory -sharedDb")
.withExposedPorts(8000);
@BeforeAll
public voID init() {
var endpointUrl = String.format("http://localhost:%d",dynamoDb.getFirstMappedPort());
amazonDynamoDB = AmazonDynamoDBClIEntBuilder.standard() .withEndpointConfiguration(new AwsClIEntBuilder.EndpointConfiguration(endpointUrl,"eu-West-2"))
.build();
错误原因:
com.github.dockerjava.API.exception.DockerClIEntexception: Unsupported protocol scheR_583_11845@e found: 'localhost:2376
整个异常堆栈:
ApplicationInfoRepoTest > initializationError Failed
java.util.serviceConfigurationError: org.TESTContainers.dockerclIEnt.DockerClIEntProvIDerStrategy: ProvIDer org.TESTContainers.dockerclIEnt.EnvironmentAndSystemPropertyClIEntProvIDerStrategy Could not be instantiated
at java.base/java.util.serviceLoader.fail(serviceLoader.java:584)
at java.base/java.util.serviceLoader$ProvIDerImpl.newInstance(serviceLoader.java:806)
at java.base/java.util.serviceLoader$ProvIDerImpl.get(serviceLoader.java:724)
at java.base/java.util.serviceLoader$3.next(serviceLoader.java:1396)
at java.base/java.lang.Iterable.forEach(Iterable.java:74)
at org.TESTContainers.DockerClIEntFactory.getorInitializeStrategy(DockerClIEntFactory.java:134)
at org.TESTContainers.DockerClIEntFactory.clIEnt(DockerClIEntFactory.java:178)
at org.TESTContainers.LazyDockerClIEnt.getDockerClIEnt(LazyDockerClIEnt.java:14)
at org.TESTContainers.LazyDockerClIEnt.authConfig(LazyDockerClIEnt.java:12)
at org.TESTContainers.containers.GenericContainer.start(GenericContainer.java:310)
at org.TESTContainers.junit.jupiter.TESTContainersExtension$StoreAdapter.start(TESTContainersExtension.java:242)
at org.TESTContainers.junit.jupiter.TESTContainersExtension$StoreAdapter.access$200(TESTContainersExtension.java:229)
at org.TESTContainers.junit.jupiter.TESTContainersExtension.lambda$null$1(TESTContainersExtension.java:59)
at org.junit.jupiter.ENGIne.execution.ExtensionValuesstore.lambda$getorComputeIfAbsent$4(ExtensionValuesstore.java:86)
at org.junit.jupiter.ENGIne.execution.ExtensionValuesstore$Memoizingsupplier.computeValue(ExtensionValuesstore.java:223)
at org.junit.jupiter.ENGIne.execution.ExtensionValuesstore$Memoizingsupplier.get(ExtensionValuesstore.java:211)
at org.junit.jupiter.ENGIne.execution.ExtensionValuesstore$StoredValue.evaluate(ExtensionValuesstore.java:191)
at org.junit.jupiter.ENGIne.execution.ExtensionValuesstore$StoredValue.access$100(ExtensionValuesstore.java:171)
at org.junit.jupiter.ENGIne.execution.ExtensionValuesstore.getorComputeIfAbsent(ExtensionValuesstore.java:89)
at org.junit.jupiter.ENGIne.execution.namespaceAwareStore.getorComputeIfAbsent(namespaceAwareStore.java:53)
at org.TESTContainers.junit.jupiter.TESTContainersExtension.lambda$beforeAll$2(TESTContainersExtension.java:59)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
at org.TESTContainers.junit.jupiter.TESTContainersExtension.beforeAll(TESTContainersExtension.java:59)
at org.junit.jupiter.ENGIne.descriptor.ClassBasedTestDescriptor.lambda$invokeBeforeAllCallBACks$8(ClassBasedTestDescriptor.java:368)
at org.junit.platform.ENGIne.support.hIErarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.jupiter.ENGIne.descriptor.ClassBasedTestDescriptor.invokeBeforeAllCallBACks(ClassBasedTestDescriptor.java:368)
at org.junit.jupiter.ENGIne.descriptor.ClassBasedTestDescriptor.before(ClassBasedTestDescriptor.java:192)
at org.junit.jupiter.ENGIne.descriptor.ClassBasedTestDescriptor.before(ClassBasedTestDescriptor.java:78)
at org.junit.platform.ENGIne.support.hIErarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:136)
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:129)
at org.junit.platform.ENGIne.support.hIErarchical.Node.around(Node.java:137)
at org.junit.platform.ENGIne.support.hIErarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:127)
at org.junit.platform.ENGIne.support.hIErarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.ENGIne.support.hIErarchical.NodeTestTask.executeRecursively(NodeTestTask.java:126)
at org.junit.platform.ENGIne.support.hIErarchical.NodeTestTask.execute(NodeTestTask.java:84)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
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:143)
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:129)
at org.junit.platform.ENGIne.support.hIErarchical.Node.around(Node.java:137)
at org.junit.platform.ENGIne.support.hIErarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:127)
at org.junit.platform.ENGIne.support.hIErarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.ENGIne.support.hIErarchical.NodeTestTask.executeRecursively(NodeTestTask.java:126)
at org.junit.platform.ENGIne.support.hIErarchical.NodeTestTask.execute(NodeTestTask.java:84)
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 org.gradle.API.internal.tasks.tesTing.junitplatform.JUnitPlatformTESTClassprocessor$CollectAllTESTClassesExecutor.processAllTESTClasses(JUnitPlatformTESTClassprocessor.java:99)
at org.gradle.API.internal.tasks.tesTing.junitplatform.JUnitPlatformTESTClassprocessor$CollectAllTESTClassesExecutor.access$000(JUnitPlatformTESTClassprocessor.java:79)
at org.gradle.API.internal.tasks.tesTing.junitplatform.JUnitPlatformTESTClassprocessor.stop(JUnitPlatformTESTClassprocessor.java:75)
at org.gradle.API.internal.tasks.tesTing.SuiteTESTClassprocessor.stop(SuiteTESTClassprocessor.java:61)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
at java.base/jdk.internal.reflect.DelegaTingMethodAccessorImpl.invoke(DelegaTingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:564)
at org.gradle.internal.dispatch.Reflectiondispatch.dispatch(Reflectiondispatch.java:36)
at org.gradle.internal.dispatch.Reflectiondispatch.dispatch(Reflectiondispatch.java:24)
at org.gradle.internal.dispatch.ContextClassLoaderdispatch.dispatch(ContextClassLoaderdispatch.java:33)
at org.gradle.internal.dispatch.ProxydispatchAdapter$dispatchingInvocationHandler.invoke(ProxydispatchAdapter.java:94)
at com.sun.proxy.$Proxy5.stop(UnkNown sourcE)
at org.gradle.API.internal.tasks.tesTing.worker.TestWorker.stop(TestWorker.java:133)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
at java.base/jdk.internal.reflect.DelegaTingMethodAccessorImpl.invoke(DelegaTingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:564)
at org.gradle.internal.dispatch.Reflectiondispatch.dispatch(Reflectiondispatch.java:36)
at org.gradle.internal.dispatch.Reflectiondispatch.dispatch(Reflectiondispatch.java:24)
at org.gradle.internal.remote.internal.hub.messageHubBACkedobjectConnection$dispatchWrapper.dispatch(messageHubBACkedobjectConnection.java:182)
at org.gradle.internal.remote.internal.hub.messageHubBACkedobjectConnection$dispatchWrapper.dispatch(messageHubBACkedobjectConnection.java:164)
at org.gradle.internal.remote.internal.hub.messageHub$Handler.run(messageHub.java:414)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecord@R_330_4895@.onExecute(ExecutorPolicy.java:64)
at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)
at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56)
at java.base/java.lang.Thread.run(Thread.java:832)
Caused by:
com.github.dockerjava.API.exception.DockerClIEntexception: Unsupported protocol scheR_583_11845@e found: 'localhost:2376
at org.TESTContainers.shaded.com.github.dockerjava.core.DefaultDockerClIEntConfig.checkDockerHostscheR_583_11845@e(DefaultDockerClIEntConfig.java:107)
at org.TESTContainers.shaded.com.github.dockerjava.core.DefaultDockerClIEntConfig.<init>(DefaultDockerClIEntConfig.java:90)
at org.TESTContainers.shaded.com.github.dockerjava.core.DefaultDockerClIEntConfig$Builder.build(DefaultDockerClIEntConfig.java:438)
at org.TESTContainers.dockerclIEnt.EnvironmentAndSystemPropertyClIEntProvIDerStrategy.<init>(EnvironmentAndSystemPropertyClIEntProvIDerStrategy.java:18)
at java.base/jdk.internal.reflect.NativeConstructOraccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructOraccessorImpl.newInstance(NativeConstructOraccessorImpl.java:64)
at java.base/jdk.internal.reflect.DelegaTingConstructOraccessorImpl.newInstance(DelegaTingConstructOraccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:500)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:481)
at java.base/java.util.serviceLoader$ProvIDerImpl.newInstance(serviceLoader.java:782)
... 81 more
GoCD 环境配置不正确,因为 DOCKER_HOST 设置为“localhost:2376”。更改 DOCKER_HOST=tcp://localhost:2376 后,它正常工作。
以上是大佬教程为你收集整理的无法在 GoCD 上实例化测试容器全部内容,希望文章能够帮你解决无法在 GoCD 上实例化测试容器所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。