28 个版本 (8 个重大更改)
0.14.0-beta.1 |
|
---|---|
0.9.0 | 2024 年 7 月 30 日 |
0.8.0 | 2024 年 7 月 7 日 |
0.3.6 | 2024 年 3 月 22 日 |
0.1.0-beta.1 | 2023 年 6 月 28 日 |
#24 in 测试
61,272 每月下载量
用于 35 crates
150KB
3.5K SLoC
testcontainers-modules
为 testcontainers 提供社区维护的模块
提供用于测试组件的模块,符合 testcontainers-rs。每个模块都作为此包中的一个功能。
用法
- 使用必要的功能(例如
postgres
、minio
等)依赖 testcontainers-modules- 如果你想在同步测试中使用模块,启用
blocking
功能(SyncRunner
的功能门)
- 如果你想在同步测试中使用模块,启用
- 然后在测试中使用
AsyncRunner
或SyncRunner
开始使用模块
使用 postgres
模块和 SyncRunner
的简单示例(启用 blocking
和 postgres
功能)
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();
}
注意:你不需要显式依赖 testcontainers
,因为它作为与这些 Crates 兼容版本的重新导出依赖项包含在 testcontainers-modules
中。例如
use testcontainers_modules::testcontainers::ImageExt;
你还可以查看 示例 了解更多细节。
如何覆盖模块默认值(版本、标签、环境变量)
只需使用 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")
}
许可证
- MIT 许可证 (LICENSE 或 http://opensource.org/licenses/MIT)
依赖项
~21–38MB
~672K SLoC