Juan B
05/04/2022, 7:23 AMNot enough information to infer type variable T
io.kotest.extensions.testcontainers.TestContainerExtension public constructor TestContainerExtension<T : GenericContainer<out T>>(
container: GenericContainer<out T>,
lifecycleMode: LifecycleMode
)
Adding the test code in the thread š
Thanks for any help!!import io.kotest.core.extensions.install
import io.kotest.core.spec.style.FunSpec
import io.kotest.extensions.testcontainers.TestContainerExtension
import io.kotest.matchers.shouldBe
import org.junit.jupiter.api.Test
import org.springframework.boot.test.autoconfigure.data.neo4j.DataNeo4jTest
import org.testcontainers.containers.Neo4jContainer
import org.testcontainers.utility.DockerImageName
@DataNeo4jTest
class ExampleGraphRepositoryTest : FunSpec({
// Example outside Kotest
val neo4jContainer: Neo4jContainer<*> = Neo4jContainer<Nothing>("neo4j:4.4.5").apply {
withAdminPassword("secret")
}
//Following Kotest extension example
val container = install(TestContainerExtension(Neo4jContainer(DockerImageName.parse("neo4j:4.4.5")))) {
withAdminPassword("secret")
}
@Test
fun `is the container running`() {
container.start()
container.isRunning() shouldBe true
}
})
sam
05/04/2022, 11:54 AMJuan B
05/05/2022, 6:18 PMval container = install(TestContainerExtension(Neo4jContainer(DockerImageName.parse("neo4j:4.4.5")))) {
withAdminPassword("secret")
}
The stack trace is running the test:
Caused by: java.lang.reflect.InvocationTargetException
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480)
at kotlin.reflect.jvm.internal.calls.CallerImpl$Constructor.call(CallerImpl.kt:41)
at kotlin.reflect.jvm.internal.KCallableImpl.call(KCallableImpl.kt:108)
at io.kotest.engine.spec.InstantiateSpecKt.javaReflectNewInstance(instantiateSpec.kt:51)
... 105 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$4(DockerClientProviderStrategy.java:157)
at java.base/java.util.Optional.orElseThrow(Optional.java:403)
at org.testcontainers.dockerclient.DockerClientProviderStrategy.getFirstValidStrategy(DockerClientProviderStrategy.java:149)
at org.testcontainers.DockerClientFactory.getOrInitializeStrategy(DockerClientFactory.java:147)
at org.testcontainers.DockerClientFactory.client(DockerClientFactory.java:188)
at org.testcontainers.DockerClientFactory$1.getDockerClient(DockerClientFactory.java:102)
at com.github.dockerjava.api.DockerClientDelegate.authConfig(DockerClientDelegate.java:108)
at org.testcontainers.containers.GenericContainer.start(GenericContainer.java:325)
at io.kotest.extensions.testcontainers.TestContainerExtension.mount(TestContainerExtension.kt:33)
at io.kotest.extensions.testcontainers.TestContainerExtension.mount(TestContainerExtension.kt:17)
at io.kotest.core.extensions.MountableExtensionKt.install(MountableExtension.kt:36)
at dev.salsa.core.profile.adapter.outbound.worker.WorkerGraphRepositoryTest$1.invoke(WorkerGraphRepositoryTest.kt:21)
at dev.salsa.core.profile.adapter.outbound.worker.WorkerGraphRepositoryTest$1.invoke(WorkerGraphRepositoryTest.kt:13)
at io.kotest.core.spec.style.FunSpec.<init>(funSpec.kt:25)
at dev.salsa.core.profile.adapter.outbound.worker.WorkerGraphRepositoryTest.<init>(WorkerGraphRepositoryTest.kt:13)
... 113 more
sam
05/09/2022, 2:02 PMCaused by: java.lang.IllegalStateException: Could not find a valid Docker environment