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

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

debug
re-export the log macros Logs a message at the debug level.
error
re-export the log macros Logs a message at the error level.
info
re-export the log macros Logs a message at the info level.
log
re-export the log macros The standard logging macro.
log_enabled
re-export the log macros 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
re-export the log macros Logs a message at the trace level.
warn
re-export the log macros Logs a message at the warn level.

Structs§

Metadata
re-export the log macros Metadata about a log message.
MetadataBuilder
re-export the log macros Builder for Metadata.
ParseLevelError
re-export the log macros The type returned by from_str when the string doesn’t match any of the log levels.
Record
re-export the log macros The “payload” of a log message.
RecordBuilder
re-export the log macros Builder for Record.
SetLoggerError
re-export the log macros The type returned by set_logger if set_logger has already been called.

Enums§

Level
re-export the log macros An enum representing the available verbosity levels of the logger.
LevelFilter
re-export the log macros An enum representing the available verbosity level filters of the logger.

Constants§

STATIC_MAX_LEVEL
re-export the log macros The statically resolved maximum log level.

Traits§

Log
re-export the log macros A trait encapsulating the operations required of a logger.

Functions§

logger
re-export the log macros Returns a reference to the logger.
max_level
re-export the log macros Returns the current maximum log level.
set_boxed_logger
re-export the log macros Sets the global logger to a Box<Log>.
set_logger
re-export the log macros Sets the global logger to a &'static Log.
set_logger_racy
re-export the log macros A thread-unsafe version of set_logger.
set_max_level
re-export the log macros Sets the global maximum log level.
set_max_level_racy
re-export the log macros A thread-unsafe version of set_max_level.