#test-framework #framework #docker #suite #test-server #integration-tests

dev dockertest-server

基于 dockertest 构建的针对服务器容器进行测试的测试框架

8 个版本

0.1.7 2022 年 5 月 13 日
0.1.6 2022 年 3 月 15 日
0.1.5 2021 年 11 月 19 日
0.1.4 2021 年 9 月 30 日

#392测试

Download history 1/week @ 2024-04-15 5/week @ 2024-04-22 79/week @ 2024-04-29 39/week @ 2024-05-06 24/week @ 2024-05-13 23/week @ 2024-05-20 16/week @ 2024-05-27 10/week @ 2024-06-03 24/week @ 2024-06-10 20/week @ 2024-06-17 23/week @ 2024-06-24 61/week @ 2024-07-01 9/week @ 2024-07-08 23/week @ 2024-07-15 14/week @ 2024-07-22

110 每月下载量
6 crates 中使用

MIT 许可证

60KB
1.5K SLoC

dockertest-server

一个针对服务器容器进行测试的基于 dockertest 构建的测试框架。

此 crate 为 dockertest crate 提供了一个小抽象层,以便于运行针对多个在容器中运行的服务器进行的测试。它提供了一组特质来定义服务器及其相关配置,然后注册任意数量的服务器以用于测试。

此 crate 的主要用途是为希望构建能够运行在容器中的服务的集成测试的 crates 提供一个易于使用的测试框架。

安装

dockertest-server 添加到您的 cargo.toml 中作为依赖项

[dev-dependencies]
dockertest-server = "0.1.7"

用法

以下示例启动一个模拟 OAuth 服务器,然后测试其是否能够响应对 HTTP 请求

// Note: This requires the `web` feature
use dockertest_server::servers::auth::{OIDCServer, OIDCServerConfig};
use dockertest_server::Test;

let config = OIDCServerConfig::builder().port(8090).build().unwrap();
let mut test = Test::new();
test.register(config);

test.run(|instance| async move {
    let server: OIDCServer = instance.server();

    let client = reqwest::Client::new();
    let resp = client
        .get(format!(
            "{}/default/.well-known/openid-configuration",
            server.external_url()
        ))
        .send()
        .await;
    assert!(resp.is_ok());
    assert_eq!(resp.unwrap().status(), 200);
});

此 crate 随带支持各种服务器,请参阅 servers 模块以了解包含的服务器。请注意,大多数服务器都需要启用功能标志以避免捆绑不必要的实现。

请随时提交一个包含您自己实现的 PR 以添加到主 crate。

测试

使用 cargo test 运行测试。

贡献

查看 问题 以了解需要关注的项目或提交您的问题,然后

  1. 在 GitHub 上分叉仓库 (https://github.com/jmgilman/dockertest-server/fork)
  2. 创建您的功能分支 (git checkout -b feature/fooBar)
  3. 提交您的更改 (git commit -am 'Add some fooBar')
  4. 将更改推送到分支 (git push origin feature/fooBar)
  5. 创建新的拉取请求

依赖项

~14–25MB
~402K SLoC