#test #docker #suite #framework


A test framework built around dockertest for testing against server containers

8 releases

0.1.7 May 13, 2022
0.1.6 Mar 15, 2022
0.1.5 Nov 19, 2021
0.1.4 Sep 30, 2021

#56 in #docker

Download history 10/week @ 2022-11-28 16/week @ 2022-12-05 17/week @ 2022-12-12 21/week @ 2022-12-19 14/week @ 2022-12-26 14/week @ 2023-01-02 12/week @ 2023-01-09 10/week @ 2023-01-16 28/week @ 2023-01-23 27/week @ 2023-01-30 13/week @ 2023-02-06 38/week @ 2023-02-13 41/week @ 2023-02-20 15/week @ 2023-02-27 16/week @ 2023-03-06 10/week @ 2023-03-13

87 downloads per month
Used in 3 crates

MIT license

1.5K SLoC


A test framework built around dockertest for testing against server containers.

This crate provides a small abstraction layer around the dockertest crate for easily running a test against multiple servers running in containers. It provides traits for defining a server and it's associated configuration and then registering a variable number of servers to bring up for a test.

The primary use-case of this crate is to provide an easy-to-use testing framework for crates that wish to build integration tests against services which are able to run in a container.


Add dockertest-server as a dependency to your cargo.toml:

dockertest-server = "0.1.7"


The below example brings up a mock OAuth server and then tests it's responding to HTTP requests:

// 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.run(|instance| async move {
    let server: OIDCServer = instance.server();

    let client = reqwest::Client::new();
    let resp = client
    assert_eq!(resp.unwrap().status(), 200);

This crate ships with support for various servers already included. See the servers module for the ones included. Note that most require a feature flag to be enabled to avoid bundling unnecessary implementations.

Please feel free to submit a PR with your own implementations to be added to the main crate.


Run tests with cargo test.


Check out the issues for items needing attention or submit your own and then:

  1. Fork the repo (https://github.com/jmgilman/dockertest-server/fork)
  2. Create your feature branch (git checkout -b feature/fooBar)
  3. Commit your changes (git commit -am 'Add some fooBar')
  4. Push to the branch (git push origin feature/fooBar)
  5. Create a new Pull Request


~353K SLoC