trait TestContainerForEach extends TestContainersForEach
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) } }
- Self Type
- TestContainerForEach with Suite
- Alphabetic
- By Inheritance
- TestContainerForEach
- TestContainersForEach
- DockerImageNameConverters
- TestContainersSuite
- SuiteMixin
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Type Members
- final type Containers = ContainerDef.Container
To use testcontainers scalatest suites you need to declare, which containers you want to use inside your tests.
To use testcontainers scalatest suites you need to declare, which containers you want to use inside your tests.
For example:
override type Containers = MySQLContainer
If you want to use multiple containers inside your tests, use
and
syntax:override type Containers = MySQLContainer and PostgreSQLContainer
- Definition Classes
- TestContainerForEach → TestContainersSuite
Abstract Value Members
- abstract val containerDef: ContainerDef
- abstract def expectedTestCount(filter: Filter): Int
- Definition Classes
- SuiteMixin
- abstract def nestedSuites: IndexedSeq[Suite]
- Definition Classes
- SuiteMixin
- abstract def rerunner: Option[String]
- Definition Classes
- SuiteMixin
- abstract def run(testName: Option[String], args: Args): Status
- Definition Classes
- SuiteMixin
- abstract def runNestedSuites(args: Args): Status
- Attributes
- protected
- Definition Classes
- SuiteMixin
- abstract def runTests(testName: Option[String], args: Args): Status
- Attributes
- protected
- Definition Classes
- SuiteMixin
- abstract def suiteId: String
- Definition Classes
- SuiteMixin
- abstract def suiteName: String
- Definition Classes
- SuiteMixin
- abstract def tags: Map[String, Set[String]]
- Definition Classes
- SuiteMixin
- abstract def testDataFor(testName: String, theConfigMap: ConfigMap): TestData
- Definition Classes
- SuiteMixin
- abstract def testNames: Set[String]
- Definition Classes
- SuiteMixin
- abstract val styleName: String
- Definition Classes
- SuiteMixin
- Annotations
- @deprecated
- Deprecated
(Since version 3.1.0) The styleName lifecycle method has been deprecated and will be removed in a future version of ScalaTest with no replacement.
Concrete Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- def afterContainersStart(containers: (TestContainerForEach.this)#Containers): Unit
Override, if you want to do something after containers start.
Override, if you want to do something after containers start.
- Definition Classes
- TestContainersSuite
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def beforeContainersStop(containers: (TestContainerForEach.this)#Containers): Unit
Override, if you want to do something before containers stop.
Override, if you want to do something before containers stop.
- Definition Classes
- TestContainersSuite
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native() @HotSpotIntrinsicCandidate()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- def runTest(testName: String, args: Args): Status
- Attributes
- protected
- Definition Classes
- TestContainersForEach → SuiteMixin
- def startContainers(): ContainerDef.Container
Contains containers startup logic.
Contains containers startup logic. In this method you can use any intermediate logic. You can pass parameters between containers, for example:
override def startContainers(): Containers = { val container1 = Container1.Def().start() val container2 = Container2.Def(container1.someParam).start() container1 and container2 }
- returns
Started containers
- Definition Classes
- TestContainerForEach → TestContainersSuite
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- def withContainers[A](runTest: ((TestContainerForEach.this)#Containers) => A): A
To use containers inside your test bodies you need to use
withContainers
function:To use containers inside your test bodies 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) }
withContainers
also supports multiple containers:it should "test" in withContainers { case mysqlContainer and pgContainer => // test body }
- runTest
Test body
- Definition Classes
- TestContainersSuite
Deprecated Value Members
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable]) @Deprecated
- Deprecated
- implicit def stringToDockerImageName(s: String): DockerImageName
- Definition Classes
- DockerImageNameConverters
- Annotations
- @deprecated
- Deprecated
Use
DockerImageName
in Container constructor instead