Library for writing plans for integration and e2e tests. Results can be given
out in nested TAP,
junit
and some junit dialect which allows nested testsuite
elements.
Usage:
use ensc_testsuite::PlanRunner;
#[test]
fn test() {
let p = PlanRunner::new();
p.run("init", |p| {
p.ok("create database", || database.create());
let admin: Admin =
p.ok("create admin", || database.create_admin()).into();
p.fail("create 2nd admin", || database.create_admin());
p.eq("exactly one admin", 1, "database.count_admin());
p.new_plan("some other test")
.set_skip(easter_is_at_xmas(), "strange event")
.run(|p| {
p.ok("....", || true);
});
});
// not really necessary
p.destruct();
}
When running cargo test
, two environment variables must be set:
-
TESTSUITE_OUTPUT
: the basename of the output file; depending on
the chosen format a suffix like .tap
or .junit
will be appended
-
TESTSUITE_FORMAT
: a comma separated list of output formats.
Supported values are:
tap
: nested TAP
junit
or junit-flat
: junit format
junit-nested
: junit with nested testsuite
elements
json
: some unspecified json representation