I have a test which spawn new threads. I'm using the 'println!' macro in these tests and this output always get printed to stdout even when not using cargo test -- --nocapture
. Even the -q
/ --quiet
flag don't change anything.
Is that the expected behavior?
This is known behavior. Redirecting stdout is a thread local thing and libtest redirects stdout for the threads it creates to run your tests in. If you spawn a new thread, it does not inherit the redirection, and therefore writes to the original process stdout rather than the redirected stdout.
Ok thanks for the clarification!