仅在运行测试时生成调试输出

问题描述 投票:0回答:0

Rust/Cargo 具有很好的内置构建和测试功能,您可以使用

cargo build
cargo build --release
cargo run
cargo test
来区分您想要如何构建和运行代码。

假设我有一个函数

foo()
,我想在单元测试中调用它。我想包括一些调试输出,这样如果测试失败,我会得到一些有用的输出。但是,如果我使用
cargo build
/
cargo run
进行调试构建或使用
cargo build --release
进行发布构建,我不希望出现输出(或者理想情况下有任何运行时影响)。如果我没有通过
cargo test
.

的测试,我只希望出现此输出

函数

foo()
对单元测试是不透明的,所以我不只是想在单元测试代码中输出打印语句,我想检测函数
foo()
本身。例如,在 C 中,您可以使用编译器
#ifdef
s 执行此操作,并针对单元测试、调试和发布多次构建程序。我希望有一些更简单的东西,比如一个自动的
testprint!()
宏,就像
print!()
一样正常工作。

有没有办法做到这一点?

testing rust conditional-statements rust-cargo conditional-compilation
© www.soinside.com 2019 - 2024. All rights reserved.