Closed2
Rustの`env_logger`を使ったログ出力が`cargo test`では出力されない
そもそもcargo test
中の標準出力はcargoにキャプチャされて出力されないが、テストに失敗したときには、
test hoge::tests::piyo ... FAILED
failures:
---- hoge::tests::piyo stdout ----
(テスト中の標準出力の内容)
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
のようにキャプチャされていた中身が出てくる。ちなみに、キャプチャされないようにするには
cargo test -- --nocapture
などとすればよい。
しかし、env_logger
の出力は-- --nocapture
としても見ることができない。
これはドキュメントでも触れられているが、この対処法では不十分だった。(おまかんか?) https://docs.rs/env_logger/latest/env_logger/#capturing-logs-in-tests
うまくいった対処法
- ドキュメント通り
let _ = env_logger::builder().format_timestamp_millis().is_test(true).try_init();
などしたうえで、- 環境変数を
RUST_LOG=debug
にする。例えばRUST_LOG=debug cargo test
などすると簡単に設定できる。
- 環境変数を
失敗してないときもキャプチャされた標準出力を見たい場合は
RUST_LOG=debug cargo test -- --nocapture
このスクラップは27日前にクローズされました