[][src]Crate oysterpack_testing

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 log;
pub extern crate chrono;
pub extern crate fern;

Macros

debug

Logs a message at the debug level.

error

Logs a message at the error level.

info

Logs a message at the info level.

log

The standard logging macro.

log_enabled

Determines if a message logged at the specified level in that module will be logged.

op_test

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.

op_tests_mod

Generates a module named tests, which provides test support functionality.

trace

Logs a message at the trace level.

warn

Logs a message at the warn level.

Structs

Metadata

Metadata about a log message.

MetadataBuilder

Builder for Metadata.

ParseLevelError

The type returned by from_str when the string doesn't match any of the log levels.

Record

The "payload" of a log message.

RecordBuilder

Builder for Record.

SetLoggerError

The type returned by set_logger if set_logger has already been called.

Enums

Level

An enum representing the available verbosity levels of the logger.

LevelFilter

An enum representing the available verbosity level filters of the logger.

Constants

STATIC_MAX_LEVEL

The statically resolved maximum log level.

Traits

Log

A trait encapsulating the operations required of a logger.

Functions

logger

Returns a reference to the logger.

max_level

Returns the current maximum log level.

set_boxed_logger

Sets the global logger to a Box<Log>.

set_logger

Sets the global logger to a &'static Log.

set_max_level

Sets the global maximum log level.