testcontainers-specs2


License

License

MIT
Categories

Categories

Container
GroupId

GroupId

io.chrisdavenport
ArtifactId

ArtifactId

testcontainers-specs2_2.13
Last Version

Last Version

0.2.0-M3
Release Date

Release Date

Type

Type

jar
Description

Description

testcontainers-specs2
testcontainers-specs2
Project URL

Project URL

https://github.com/ChristopherDavenport/testcontainers-specs2
Project Organization

Project Organization

io.chrisdavenport
Source Code Management

Source Code Management

https://github.com/davenverse/testcontainers-specs2

Download testcontainers-specs2_2.13

How to add to project

<!-- https://jarcasting.com/artifacts/io.chrisdavenport/testcontainers-specs2_2.13/ -->
<dependency>
    <groupId>io.chrisdavenport</groupId>
    <artifactId>testcontainers-specs2_2.13</artifactId>
    <version>0.2.0-M3</version>
</dependency>
// https://jarcasting.com/artifacts/io.chrisdavenport/testcontainers-specs2_2.13/
implementation 'io.chrisdavenport:testcontainers-specs2_2.13:0.2.0-M3'
// https://jarcasting.com/artifacts/io.chrisdavenport/testcontainers-specs2_2.13/
implementation ("io.chrisdavenport:testcontainers-specs2_2.13:0.2.0-M3")
'io.chrisdavenport:testcontainers-specs2_2.13:jar:0.2.0-M3'
<dependency org="io.chrisdavenport" name="testcontainers-specs2_2.13" rev="0.2.0-M3">
  <artifact name="testcontainers-specs2_2.13" type="jar" />
</dependency>
@Grapes(
@Grab(group='io.chrisdavenport', module='testcontainers-specs2_2.13', version='0.2.0-M3')
)
libraryDependencies += "io.chrisdavenport" % "testcontainers-specs2_2.13" % "0.2.0-M3"
[io.chrisdavenport/testcontainers-specs2_2.13 "0.2.0-M3"]

Dependencies

compile (3)

Group / Artifact Type Version
org.scala-lang : scala-library jar 2.13.1
org.specs2 : specs2-core_2.13 jar 4.10.5
com.dimafeng : testcontainers-scala_2.13 jar 0.39.3

test (5)

Group / Artifact Type Version
org.typelevel : cats-effect_2.13 jar 2.1.3
org.flywaydb : flyway-core jar 6.4.4
org.tpolecat : doobie-core_2.13 jar 0.9.0
org.tpolecat : doobie-specs2_2.13 jar 0.9.0
org.tpolecat : doobie-postgres_2.13 jar 0.9.0

Project Modules

There are no modules declared in this project.

testcontainers-specs2 Build Status Maven Central

Integration for testing components with docker.

Quick Start

To use testcontainers-specs2 in an existing SBT project with Scala 2.11 or a later version, add the following dependency to your build.sbt:

libraryDependencies += "io.chrisdavenport" %% "testcontainers-specs2" % "<version>" % Test

Examples

Migrations

import cats.effect._
import org.flywaydb.core.Flyway
import org.specs2.mutable.Specification

class MigrationsSpec
    extends Specification
    with ForAllTestContainer
    with UsesPostgreSQLMultipleDatabases {

  "Migrations should run Correctly" in {
    IO {
      Flyway
        .configure()
        .dataSource(jdbcUrl, dbUserName, dbPassword)
        .load()
        .migrate
    }.attempt
      .map(_.isRight)
      .unsafeRunSync() must_=== true
  }

}

Doobie

import cats.effect._
import doobie._
import doobie.implicits._
import doobie.specs2._
import org.flywaydb.core.Flyway
import org.specs2.mutable.Specification

import scala.concurrent.ExecutionContext

class QueriesSpec[F[_]]
    extends Specification
    with IOChecker
    with ForAllTestContainer
    with UsesPostgreSQLMultipleDatabases {

  implicit val CS: ContextShift[IO] = IO.contextShift(ExecutionContext.global)

  override lazy val transactor: Transactor[IO] = Transactor.fromDriverManager[IO](
    driverName,
    jdbcUrl,
    dbUserName,
    dbPassword
  )

  sequential

  // afterStart / beforeStop available for actions at the begininning
  // and end of a particular container session.
  // In this case we make sure migrations have run before we check the sql statements.
  override def afterStart(): Unit = {
    Flyway
      .configure()
      .dataSource(jdbcUrl, dbUserName, dbPassword)
      .load()
      .migrate
    ()
  }

  check(sql"SELECT 1".query[Int])

}
io.chrisdavenport

Versions

Version
0.2.0-M3
0.2.0-M2
0.2.0-M1