trait TestContainersForAll extends TestContainersSuite with DockerImageNameConverters
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) } }
- Self Type
- TestContainersForAll with Suite
- Alphabetic
- By Inheritance
- TestContainersForAll
- DockerImageNameConverters
- TestContainersSuite
- SuiteMixin
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Type Members
- abstract type Containers <: Andable
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
- TestContainersSuite
Abstract Value Members
- 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 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 startContainers(): (TestContainersForAll.this)#Containers
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
- TestContainersSuite
- 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: (TestContainersForAll.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: (TestContainersForAll.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 run(testName: Option[String], args: Args): Status
- Definition Classes
- TestContainersForAll → SuiteMixin
- def runTest(testName: String, args: Args): Status
- Attributes
- protected
- Definition Classes
- TestContainersForAll → SuiteMixin
- 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: ((TestContainersForAll.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