tokiotest-httpserver CircleCI

A small test server utility to run http request against.

parallel use

The test context instantiates a new server with a random port between 12300 and 12400. The test will use this port :

```rust,norun use testcontext::{AsyncTestContext, testcontext}; use hyper::{Uri, StatusCode, Client}; use tokiotesthttpserver::handler::{HandlerBuilder}; use tokiotest_httpserver::HttpTestContext;

[test_context(HttpTestContext)]

[tokio::test]

async fn testgetrespond200(ctx: &mut HttpTestContext) { ctx.add(HandlerBuilder::new("/ok").statuscode(StatusCode::OK).build());

let resp = Client::new().get(ctx.uri("/ok")).await.unwrap();

assert_eq!(200, resp.status());

} ```

At the end of the test, the port is released and can be used in another test.

serial use

It is also possible to use it with a sequential workflow. You just have to include the serial_test crate, and add the annotation.

With serial workflow you can choose to use a fixed port for the http test server by setting the environment variable TOKIOTEST_HTTP_PORT to the desired port.

See for example test_serial.