Search code examples
testingloggingrustrust-tracing

How to print tracing output in tests?


My application is using the tracing Rust crate to create log output. How do I print these log messages when I'm running my tests?


Solution

  • You can use the tracing_test Rust crate for this. It works like this:

    #[traced_test]
    #[test]
    fn plain_old_test() {
       ...
    }
    

    All you have to do is add the tracing_test to your list of dependencies and decorate your tests with the #[traced_test] macro.

    This also works with tokio_macros tests, that are decorated with #[tokio::test].

    Then, as @Yuri mentions, you need to run the tests with the --nocapture argument: cargo t --nocapture. This is only relevant if the test succeeds.