simplyscala / scalatest-embedmongo   0.2.4


Simple scala lib to "unit" test your mongodb request

Scala versions: 2.12 2.11 2.10


This project provides API to use an embedMongo database in your Scala tests

It is directly inspired by spec2-embedmongo project.

This works in a Java 6+ environment


  • trait to use embedMongo OK (0.1 version)
  • trait to use embedMongo fixture OK (0.1 version)
  • deploy on maven central OK (0.1 version)
  • build on scala 2.10 OK (0.2 version)
  • cross compilation 2.9 & 2.10 OK (0.2 version)
  • manage port uses for parallel testing TODO
  • helpers for setup test with embedMongo TODO


Git repo

scalatest-embedmongo is a SBT project.
It use 0.13.13 sbt version.
Only the following Scala versions 2.11 & 2.12 are currently supported.
The current version of the library is 0.2.4.

Maven dependency


SBT dependency

    libraryDependencies += "com.github.simplyscala" %% "scalatest-embedmongo" % "0.2.4" % "test"

Simple JAR file

0.2.4 jar version

Try SNAPSHOT version

You could be tempted to try SNAPSHOT version to test project’s next features.

with Maven

<project ...>

         <id>maven snapshot</id>



with SBT

   resolvers += "Sonatype OSS Snapshots" at ""

   libraryDependencies += "com.github.simplyscala" %% "scalatest-embedmongo" % "0.2.5-SNAPSHOT"


In order to use scalatest-embedmongo API, your test must extends MongoEmbedDatabase as follows:

    import com.github.simplyscala.MongoEmbedDatabase


    MyTest extends FunSuite with MongoEmbedDatabase

Basic Usage (mutable way)

    MyTest extends FunSuite with MongoEmbedDatabase with BeforeAndAfter {

        var mongoProps: MongodProps = null

        before {
            mongoProps = mongoStart()   // by default port = 12345 & version = Version.3.3.1
        }                               // add your own port & version parameters in mongoStart method if you need it

        after { mongoStop(mongoProps) }

        test("some test with mongo") {

Immutable way usage

You can use fixture to start/stop the embed server with immutable way :

    MyTest extends FunSuite with MongoEmbedDatabase {

        test("test with fixture") {
            //add your own port & version parameters in withEmbedMongoFixture method if you need it
            withEmbedMongoFixture() { mongodProps =>
                // do some mongo database operations
                // in this fixture the dabatase is started
                // at the end of this fixture the database is stopped

Be careful if you launch yours tests in parallel you could have some trouble because of mongodb port multiples uses !


This file is written with .textile extension

Maven Repository Usage Guide
Sonatype project JIRA Page