Crate datatest_stable[−][src]
Expand description
datatest-stable
is a very simple test harness intended to write data-driven tests, where
individual test cases are specified as data and not as code. Given:
- a test
my_test
that accepts a path as input - a directory to look for files in
- a pattern to match files on
datatest_stable
will call the my_test
function once per matching file in the directory.
This meets some of the needs provided by the datatest
crate when using a stable rust compiler
without using the RUSTC_BOOTSTRAP
hack to use nightly features on the stable compiler.
In order to setup data-driven tests for a particular test target you must do the following:
- Configure the test target by setting the following in the
Cargo.toml
[[test]]
name = "<test target name>"
harness = false
- Call the
datatest_stable::harness!(testfn, root, pattern)
macro with the following parameters:
testfn
- The test function to be executed on each matching input. This function must have the typefn(&Path) -> datatest_stable::Result<()>
root
- The path to the root directory where the input files (fixtures) live. This path is relative to the root of the crate.pattern
- the regex used to match against and select each file to be tested.
The three parameters can be repeated if you have multiple sets of data-driven tests to be run:
datatest_stable::harness!(testfn1, root1, pattern1, testfn2, root2, pattern2)
Examples
This is an example test. Use it with harness = false
.
use std::path::Path;
fn my_test(path: &Path) -> datatest_stable::Result<()> {
// ... write test here
Ok(())
}
datatest_stable::harness!(my_test, "path/to/fixtures", r"^.*/*");
See also
datatest
: the original inspiration for this crate, with a better UI and more features but targeting nightly Rust- Data-driven testing
Macros
datatest-stable
test harness entry point. Should be declared in the test module.
Type Definitions
The result type for datatest-stable
tests.