32 个版本 (20 个重大变化)
0.21.1 | 2024年8月5日 |
---|---|
0.21.0 | 2024年7月30日 |
0.20.1 | 2024年7月18日 |
0.15.0 | 2023年10月5日 |
0.3.1 | 2018年10月23日 |
#14 in 测试
每月下载量 164,126
用于 125 个crate(直接使用103个)
190KB
4K SLoC
Testcontainers-rs
Testcontainers-rs 是 http://testcontainers.org 的官方 Rust 语言分支。
使用方法
testcontainers
是核心crate
该crate提供了一个用于测试环境中处理容器的API。
- 依赖
testcontainers
- 实现
testcontainers::core::Image
以使用必要的docker-images - 使用任何可用的运行器运行它
testcontainers::runners::*
(使用blocking
特性以同步API)
示例
- 阻塞API(在
blocking
特性下)
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");
}
- 异步API
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");
}
可用的镜像
使用 testcontainers
最简单的方法是依赖可用的镜像(也称为模块)。
模块作为社区维护的crate提供: testcontainers-modules
许可证
根据您的选择,许可如下:
- Apache 许可证2.0版本 (LICENSE-APACHE 或 http://apache.ac.cn/licenses/LICENSE-2.0)
- MIT 许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
。
依赖项
~20–35MB
~662K SLoC