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!()

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

pub extern crate chrono;
pub extern crate fern;
pub extern crate log;

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.
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.