3 releases
Uses old Rust 2015
0.1.2 | Oct 26, 2018 |
---|---|
0.1.1 | Oct 26, 2018 |
0.1.0 | Oct 25, 2018 |
#2 in #oyster-pack
Used in 2 crates
13KB
106 lines
This crate is meant to be used as a dev dependency. Its purpose is to provides the testing support to help reduce boilerplate, duplication, and provides standardization.
The following macros are provided:
- op_tests_mod
- provides support to configure logging for tests
- logs test execution time
- op_test
- used to generate test functions that leverage the
tests
module generated by op_tests_mod!()
- used to generate test functions that leverage the
Example
#[cfg(test)]
#[macro_use]
extern crate oysterpack_testing;
#[cfg(test)]
op_tests_mod!();
#[cfg(test)]
mod foo_test {
// the macro creates a test function named 'foo'
op_test!(foo, {
info!("SUCCESS");
});
#[test]
fn foo_test() {
// alternatively use ::run_test("test name",|| { // test code })
::run_test("foo_test", || {
// by default the crate's log level is set to Debug
debug!("SUCCESS")
});
}
}
Example - configuring target log levels
#[cfg(test)]
#[macro_use]
extern crate oysterpack_testing;
#[cfg(test)]
op_tests_mod! {
"foo" => Info,
"bar" => Error
}
#[cfg(test)]
mod foo_test {
op_test!(foo, {
info!("this will be logged because this crate's log level is Debug");
info!(target: "foo", "foo info will be logged");
info!(target: "bar", "*** bar info will not be logged ***");
error!(target: "bar", "bar error will be logged");
});
#[test]
fn foo_test() {
::run_test("foo_test", || {
debug!("SUCCESS")
});
}
}
Notes
- the log, fern, and chrono crates are re-exported because they are used by the macros. Re-exporting them makes the macros self-contained.
Dependencies
~1.4–1.9MB
~29K SLoC