Starts a single container before all tests and stops it after all tests
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
Starts a single container before all tests and stops it after all tests
Example: