simplyscala / scalatest-embedmongo Edit

Simple scala lib to "unit" test your mongodb request

Version Matrix


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