You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The crate provides an API for working with containers in a test environment.
Depend on testcontainers
Implement testcontainers::core::Image for necessary docker-images
Run it with any available runner testcontainers::runners::* (use blocking feature for synchronous API)
Example:
Blocking API (under blocking feature)
use testcontainers::{core::{IntoContainerPort,WaitFor}, runners::SyncRunner,GenericImage,ImageExt};#[test]fntest_redis(){let container = GenericImage::new("redis","7.2.4").with_exposed_port(6379.tcp()).with_wait_for(WaitFor::message_on_stdout("Ready to accept connections")).with_network("bridge").with_env_var("DEBUG","1").start().expect("Failed to start Redis");}
Async API
use testcontainers::{core::{IntoContainerPort,WaitFor}, runners::AsyncRunner,GenericImage,ImageExt};#[tokio::test]asyncfntest_redis(){let container = GenericImage::new("redis","7.2.4").with_exposed_port(6379.tcp()).with_wait_for(WaitFor::message_on_stdout("Ready to accept connections")).with_network("bridge").with_env_var("DEBUG","1").start().await.expect("Failed to start Redis");}
Ready-to-use images
The easiest way to use testcontainers is to depend on ready-to-use images (aka modules).