I'm trying to write test in kotlin + junit5 with docker compose
var environment: DockerComposeContainer<*> =
DockerComposeContainer(mutableListOf(File("src/test/kotlin/resources/docker-compose.yml")))
Unfortunately I'm getting:
Type inference failed: Not enough information to infer parameter SELF in constructor DockerComposeContainer
!> (composeFiles: (Mutable)List !) Please specify it explicitly.
Did anyone got same error?
Try something like this:
object DockerContainer {
val instance: KDockerComposeContainer by lazy { startDockerCompose()}
class KDockerComposeContainer(file: File) : DockerComposeContainer<KDockerComposeContainer>(file)
private fun startDockerCompose() = KDockerComposeContainer(File("integrationTests/docker-compose.start-archival.yml"))
}
@jeffzoch thanks for guidance. I've created following snippet:
companion object {
private val instance: KDockerComposeContainer by lazy { defineDockerCompose()}
class KDockerComposeContainer(file: File) : DockerComposeContainer<KDockerComposeContainer>(file)
private fun defineDockerCompose() = KDockerComposeContainer(File("src/test/resources/docker-compose.yml"))
@BeforeAll
@JvmStatic
internal fun beforeAll() {
instance.start()
}
@AfterAll
@JvmStatic
internal fun afterAll() {
instance.stop()
}
}
Most helpful comment
@jeffzoch thanks for guidance. I've created following snippet: