com.dimafeng.testcontainers.scalatest
Type members
Classlikes
Starts a single container before all tests and stop it after all tests
Starts a single container before all tests and stop it after all tests
Example:
class MysqlSpec extends AnyFlatSpec with TestContainerForAll {
// You need to override `containerDef` with needed container definition
override val containerDef = MySQLContainer.Def()
// To use containers in tests you need to use `withContainers` function
it should "test" in withContainers { mysqlContainer =>
// Inside your test body you can do with your container whatever you want to
assert(mysqlContainer.jdbcUrl.nonEmpty)
}
}
Starts a single container before each test and stop it after each test
Starts a single container before each test and stop it after each test
Example:
class MysqlSpec extends AnyFlatSpec with TestContainerForEach {
// You need to override `containerDef` with needed container definition
override val containerDef = MySQLContainer.Def()
// To use containers in tests you need to use `withContainers` function
it should "test" in withContainers { mysqlContainer =>
// Inside your test body you can do with your container whatever you want to
assert(mysqlContainer.jdbcUrl.nonEmpty)
}
}
Starts containers before all tests and stop then after all tests
Starts containers before all tests and stop then after all tests
Example:
class ExampleSpec extends AnyFlatSpec with TestContainersForAll {
// First of all, you need to declare, which containers you want to use
override type Containers = MySQLContainer and PostgreSQLContainer
// After that, you need to describe, how you want to start them,
// In this method you can use any intermediate logic.
// You can pass parameters between containers, for example.
override def startContainers(): Containers = {
val container1 = MySQLContainer.Def().start()
val container2 = PostgreSQLContainer.Def().start()
container1 and container2
}
// `withContainers` function supports multiple containers:
it should "test" in withContainers { case mysqlContainer and pgContainer =>
// Inside your test body you can do with your containers whatever you want to
assert(mysqlContainer.jdbcUrl.nonEmpty && pgContainer.jdbcUrl.nonEmpty)
}
}
Starts containers before each test and stop them after each test
Starts containers before each test and stop them after each test
Example:
class ExampleSpec extends AnyFlatSpec with TestContainersForEach {
// First of all, you need to declare, which containers you want to use
override type Containers = MySQLContainer and PostgreSQLContainer
// After that, you need to describe, how you want to start them,
// In this method you can use any intermediate logic.
// You can pass parameters between containers, for example.
override def startContainers(): Containers = {
val container1 = MySQLContainer.Def().start()
val container2 = PostgreSQLContainer.Def().start()
container1 and container2
}
// `withContainers` function supports multiple containers:
it should "test" in withContainers { case mysqlContainer and pgContainer =>
// Inside your test body you can do with your containers whatever you want to
assert(mysqlContainer.jdbcUrl.nonEmpty && pgContainer.jdbcUrl.nonEmpty)
}
}