28 个版本 (8 个重大更改)

0.14.0-beta.1 2023 年 6 月 19 日
0.9.0 2024 年 7 月 30 日
0.8.0 2024 年 7 月 7 日
0.3.6 2024 年 3 月 22 日
0.1.0-beta.12023 年 6 月 28 日

#24 in 测试

Download history 9122/week @ 2024-05-03 9028/week @ 2024-05-10 9982/week @ 2024-05-17 8118/week @ 2024-05-24 9338/week @ 2024-05-31 9094/week @ 2024-06-07 12248/week @ 2024-06-14 12347/week @ 2024-06-21 10055/week @ 2024-06-28 12907/week @ 2024-07-05 16690/week @ 2024-07-12 13007/week @ 2024-07-19 12748/week @ 2024-07-26 15469/week @ 2024-08-02 16550/week @ 2024-08-09 14072/week @ 2024-08-16

61,272 每月下载量
用于 35 crates

MIT 许可证

150KB
3.5K SLoC

testcontainers-modules

Continuous Integration Crates.io Docs.rs

testcontainers 提供社区维护的模块

提供用于测试组件的模块,符合 testcontainers-rs。每个模块都作为此包中的一个功能。

用法

  1. 使用必要的功能(例如 postgresminio 等)依赖 testcontainers-modules
    • 如果你想在同步测试中使用模块,启用 blocking 功能(SyncRunner 的功能门)
  2. 然后在测试中使用 AsyncRunnerSyncRunner 开始使用模块

使用 postgres 模块和 SyncRunner 的简单示例(启用 blockingpostgres 功能)

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")
}

许可证

依赖项

~21–38MB
~672K SLoC