This module is INCUBATING. While it is ready for use and operational in the current version of Testcontainers, it is possible that it may receive breaking changes in the future. See our contributing guidelines for more information on our incubating modules policy.
The following example shows how to create a MongoDBContainer:
final MongoDBContainer mongoDBContainer = new MongoDBContainer(DockerImageName.parse("mongo:4.0.10"))
And how to start it:
To construct a multi-node MongoDB cluster, consider the mongodb-replica-set project
Implement a reusable, cross-platform, simple to install solution that doesn't depend on fixed ports to test MongoDB transactions.
MongoDB starting from version 4 supports multi-document transactions only for a replica set. For instance, to initialize a single node replica set on fixed ports via Docker, one has to do the following:
- Run a MongoDB container of version 4 and up specifying --replSet command
- Initialize a single replica set via executing a proper command
- Wait for the initialization to complete
- Provide a special url for a user to employ with a MongoDB driver without specifying replicaSet
As we can see, there is a lot of operations to execute and we even haven't touched a non-fixed port approach. That's where the MongoDBContainer might come in handy.
Adding this module to your project dependencies
Add the following dependency to your
<dependency> <groupId>org.testcontainers</groupId> <artifactId>mongodb</artifactId> <version>1.18.3</version> <scope>test</scope> </dependency>
Adding this Testcontainers library JAR will not automatically add a database driver JAR to your project. You should ensure that your project also has a suitable database driver as a dependency
Copyright (c) 2019 Konstantin Silaev firstname.lastname@example.org