com.dimafeng.testcontainers.munit

Type members

Classlikes

Starts a single container before all tests and stops it after all tests

Starts a single container before all tests and stops it after all tests

Example:

class MysqlSpec extends FunSuite 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
 test("test case name") {
   withContainers { mysqlContainer =>
     // Inside your test body you can do with your container whatever you want to
     assert(mysqlContainer.jdbcUrl.nonEmpty)
   }
 }
}

Notes:
- If you override beforeAll() without calling super.beforeAll() your container won't start
- If you override afterAll() without calling super.afterAll() your container won't stop

Starts a single container before each test and stops it after each test

Starts a single container before each test and stops it after each test

Example:

class MysqlSpec extends FunSuite 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
 test("test case name") {
   withContainers { mysqlContainer =>
     // Inside your test body you can do with your container whatever you want to
     assert(mysqlContainer.jdbcUrl.nonEmpty)
   }
 }
}

Notes:
- If you override beforeEach() without calling super.beforeEach() your container won't start
- If you override afterEach() without calling super.afterEach() your container won't stop

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 FunSuite 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:
 test("test") {
   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)
   }
 }
}

Notes:
- If you override beforeAll() without calling super.beforeAll() your containers won't start
- If you override afterAll() without calling super.afterAll() your containers won't stop

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 FunSuite 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:
 test("test") {
   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)
   }
 }
}

Notes:
- If you override beforeEach() without calling super.beforeEach() your containers won't start
- If you override afterEach() without calling super.afterEach() your containers won't stop
trait TestContainersSuite extends DockerImageNameConverters
Companion:
object
Companion:
class