【发布时间】:2020-03-27 07:09:06
【问题描述】:
我希望能够将标志传递给cargo test,以便在我需要调试测试时启用日志记录。
我想出了类似的东西:
#[cfg(logging)]
// An internal module where I define some helper to configure logging
// I use `tracing` internally.
use crate::logging;
#[test]
fn mytest() {
#[cfg(logging)]
logging::enable();
// ..
assert!(true);
}
然后我可以启用日志
RUSTFLAGS="--cfg logging" cargo test
它有效,但感觉就像我在滥用rustc 标志系统。它还具有使用我的logging 标志重新编译所有板条箱的副作用,如果有一天我的一个依赖项使用此标志,这(除了需要很长时间之外)可能是一个问题。
有没有更好的方法来定义和使用自定义属性?我可以在货物清单中添加feature,但这并不是真正的功能,因为它只是用于测试。
【问题讨论】:
标签: testing rust conditional-compilation