Crates.io | testcontainers |
lib.rs | testcontainers |
version | 0.23.1 |
source | src |
created_at | 2018-08-24 06:07:51.802609 |
updated_at | 2024-09-26 00:07:55.345846 |
description | A library for integration-testing against docker containers from within Rust. |
homepage | |
repository | https://github.com/testcontainers/testcontainers-rs |
max_upload_size | |
id | 80997 |
size | 218,462 |
Testcontainers-rs is the official Rust language fork of http://testcontainers.org.
testcontainers
is the core crateThe crate provides an API for working with containers in a test environment.
testcontainers
testcontainers::core::Image
for necessary docker-imagestestcontainers::runners::*
(use blocking
feature for synchronous API)blocking
feature)use testcontainers::{core::{IntoContainerPort, WaitFor}, runners::SyncRunner, GenericImage};
#[test]
fn test_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"))
.start()
.expect("Redis started");
}
use testcontainers::{core::{IntoContainerPort, WaitFor}, runners::AsyncRunner, GenericImage};
#[tokio::test]
async fn test_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"))
.start()
.await
.expect("Redis started");
}
The easiest way to use testcontainers
is to depend on ready-to-use images (aka modules).
Modules are available as a community-maintained crate: testcontainers-modules
Licensed under either of
at your option.