test

Attribute Macro test 

Source
#[test]
Expand description

A procedural macro for the test attribute.

The attribute can be used to define a test that has the env_logger and/or tracing crates initialized (depending on the features used).

§Example

Specify the attribute on a per-test basis:

#[test_log::test]
fn it_works() {
  info!("Checking whether it still works...");
  assert_eq!(2 + 2, 4);
  info!("Looks good!");
}

It can be very convenient to convert over all tests by overriding the #[test] attribute on a per-module basis:

use test_log::test;

#[test]
fn it_still_works() {
  // ...
}

The crate also supports stacking with other #[test] attributes. For example, you can stack #[tokio::test] on top of this crate’s #[test] attribute and test async functionality this way:

#[tokio::test]
#[test_log::test]
async fn it_still_works() {
  // ...
}

Note that stacking #[test] attributes this way requires some minimal level of cooperation from the other crate to work properly (see #46 for details), but as a fallback a wrapping style can be used as well:

use test_log::test;

#[test(tokio::test)]
async fn it_also_works() {
  // ...
}