Expand description
§testcontainers-modules
Community maintained modules for testcontainers
Provides modules to use for testing components in accordance with testcontainers-rs. Every module is treated as a feature inside this crate.
§Usage
- Depend on testcontainers-modules with necessary features (e.g
postgres
,minio
and etc)- Enable
blocking
feature if you want to use modules within synchronous tests (feature-gate forSyncRunner
)
- Enable
- Then start using the modules inside your tests with either
AsyncRunner
orSyncRunner
Simple example of using postgres
module with SyncRunner
(blocking
and postgres
features enabled):
ⓘ
use testcontainers_modules::{postgres, testcontainers::runners::SyncRunner};
#[test]
fn test_with_postgres() {
let container = postgres::Postgres::default().start().unwrap();
let host_ip = container.get_host().unwrap();
let host_port = container.get_host_port_ipv4(5432).unwrap();
}
Note: you don’t need to explicitly depend on testcontainers
as it’s re-exported dependency
of testcontainers-modules
with aligned version between these crates.
For example:
use testcontainers_modules::testcontainers::ImageExt;
You can also see examples for more details.
§How to override module defaults (version, tag, ENV-variables)
Just use RunnableImage:
ⓘ
use testcontainers_modules::{
redis::Redis,
testcontainers::{ContainerRequest, ImageExt}
};
/// Create a Redis module with `6.2-alpine` tag and custom password
fn create_redis() -> ContainerRequest<Redis> {
Redis::default()
.with_tag("6.2-alpine")
.with_env_var("REDIS_PASSWORD", "my_secret_password")
}
§License
- MIT license (LICENSE or http://opensource.org/licenses/MIT)
Please have a look at the documentation of the separate modules for examples on how to use the module.
Re-exports§
pub use testcontainers;
Modules§
- clickhouse
clickhouse
Clickhouse (analytics database) testcontainer - cncf_
distribution cncf_distribution
CNCF Distribution (container registry) testcontainer - cockroach_
db cockroach_db
CockroachDB (distributed database) testcontainer - consul
consul
Consul (identity-based networking) testcontainer - databend
databend
Databend (analytics database) testcontainer - dynamodb_
local dynamodb
DynamoDB (NoSQL database) testcontainer - elastic_
search elastic_search
Elasticsearch (distributed search engine) testcontainer - elasticmq
elasticmq
ElasticMQ (message queue) testcontainer - google_
cloud_ sdk_ emulators google_cloud_sdk_emulators
googles cloud sdk emulator testcontainer - hashicorp_
vault hashicorp_vault
HashiCorp Vault (secrets management) testcontainer - k3s
k3s
K3s (lightweight kubernetes) testcontainer - kafka
kafka
Apache Kafka (data streaming) testcontainer - kwok
kwok
KWOK Cluster (Kubernetes WithOut Kubelet) testcontainer - localstack
localstack
Apache Kafka (data streaming) testcontainer - mariadb
mariadb
MariaDB (relational database) testcontainer - meilisearch
meilisearch
Meilisearch (search engine) testcontainer - minio
minio
minio (object storage) testcontainer - mongo
mongo
MongoDB (NoSql database) testcontainer - mosquitto
mosquitto
mosquitto (mqtt message broker) testcontainer - mssql_
server mssql_server
Microsoft SQL Server (relational database) testcontainer - mysql
mysql
MySQL (relational database) testcontainer - nats
nats
Nats (message orineted middleware) testcontainer - neo4j
neo4j
Neo4j (graph database) testcontainer - openldap
openldap
Openldap (ldap authentification) testcontainer - oracle
oracle
oracle (relational database) testcontainer - orientdb
orientdb
orientdb (nosql database) testcontainer - parity_
parity parity
parity_parity (etherium client) testcontainer - postgres
postgres
Postgres (relational database) testcontainer - pulsar
pulsar
Apache Pulsar (Cloud-Native, Distributed Messaging and Streaming) testcontainer - rabbitmq
rabbitmq
rabbitmq (message broker) testcontainer - redis
redis
redis (in memory nosql database) testcontainer - solr
solr
Apache Solr (distributed search engine) testcontainer - surrealdb
surrealdb
surrealdb (mutli model database) testcontainer - trufflesuite_
ganachecli trufflesuite_ganachecli
Trufflesuite Ganache CLI (etherium simulator) testcontainer - victoria_
metrics victoria_metrics
VictoriaMetrics (monitoring and time series metrics database) testcontainer - zookeeper
zookeeper
Apache ZooKeeper (locking and configuratin management) testcontainer