我在Rust写一个程序,我有一些测试。我为这些测试编写了一个辅助函数,但每当我使用cargo build
构建时,它都警告我该函数从未使用过:
警告:从不使用函数:...#[warn(dead_code)]默认打开
我如何将此功能标记为使用以便不发出警告?
我如何将此功能标记为使用以便不发出警告?
Rust编译器运行许多lints来警告你代码中可能存在的问题,而dead_code
lint就是其中之一。在代码完成时指出错误非常有用,但在早期阶段也可能是麻烦。但是,可以通过allow
ing关闭所有lints,并且您的错误消息(#[warn(dead_code)] on by default
)包含您可以禁用的lint的名称。
#[allow(dead_code)]
fn my_unused_function() {}
我为这些测试编写了一个辅助函数,但每当我使用
cargo build
构建时,它都会警告我该函数从未使用过。
这恰好是一种特殊情况,即在真正的可执行文件中不需要仅用于测试的代码,并且可能不应该包含该代码。
为了可选地禁用编译测试代码,您可以使用带有cfg
attribute配置文件的test
相应地对其进行标记。
#[cfg(test)]
fn my_test_specific_function() {}
以这种方式标记时,编译器知道在编译期间忽略该方法。这与在C或C ++等其他语言中常用的ifdef
用法相似,除非定义了TESTING
,否则您要告诉预处理器忽略所附的代码。
#ifdef TESTING
...
#endif
如果某些东西仅用于测试,则应完全省略。这可以使用#[cfg(test)]
属性来完成。
dead_code
是一个棉绒,这意味着你可以allow
它的东西导致它触发。
#[allow(dead_code)]
fn dummy() {}
fn main() {}