Crate oysterpack_testing
source ·Expand description
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.
Re-exports
Macros
Logs a message at the debug level.
Logs a message at the error level.
Logs a message at the info level.
The standard logging macro.
Determines if a message logged at the specified level in that module will
be logged.
Creates a test function, which executes the specified expression block.
It reduces some boilerplate and hides the internals of the
tests
module
generated by op_tests_mod.Generates a module named
tests
, which provides test support functionality.Logs a message at the trace level.
Logs a message at the warn level.
Structs
Metadata about a log message.
Builder for
Metadata
.The type returned by
from_str
when the string doesn’t match any of the log levels.The “payload” of a log message.
Builder for
Record
.The type returned by
set_logger
if set_logger
has already been called.Enums
An enum representing the available verbosity levels of the logger.
An enum representing the available verbosity level filters of the logger.
Constants
The statically resolved maximum log level.
Traits
A trait encapsulating the operations required of a logger.
Functions
Returns a reference to the logger.
Returns the current maximum log level.
Sets the global logger to a
Box<Log>
.Sets the global logger to a
&'static Log
.A thread-unsafe version of
set_logger
.Sets the global maximum log level.