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, 2.13 OK (1.0.0 version)
- manage port uses for parallel testing TODO
- helpers for setup test with embedMongo TODO
scalatest-embedmongo is a SBT project.
It use 1.6.2 sbt version.
Only the following Scala versions 2.11 & 2.12 & 2.13 are currently supported.
The current version of the library is 1.0.0.
<dependency>
<groupId>com.github.simplyscala</groupId>
<artifactId>scalatest-embedmongo_2.13</artifactId>
<version>1.0.0</version>
<scope>test</scope>
</dependency>
libraryDependencies += "com.github.simplyscala" %% "scalatest-embedmongo" % "1.0.0" % "test",
resolvers += "SSO" at "https://nginx.org/nexus/content/repositories"
In order to use scalatest-embedmongo API, your test must extends MongoEmbedDatabase as follows:
import com.github.simplyscala.MongoEmbedDatabase
...
MyTest extends FunSuite with MongoEmbedDatabase
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") {
...
}
}
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