gpt4 book ai didi

unit-testing - 如何测试 Rust 中的可选功能?

转载 作者:行者123 更新时间:2023-11-29 08:09:02 25 4
gpt4 key购买 nike

我有一个要添加可选功能的包。我在我的 Cargo.toml 中添加了一个适当的部分:

[features]
foo = []

我为 cfg! 宏的基本功能编写了一个实验测试:

#[test]
fn testing_with_foo() {
assert!(cfg!(foo));
}

看起来我可以在测试期间通过选项 --features--all-features 激活功能:

(master *=) $ cargo help test
cargo-test
Execute all unit and integration tests and build examples of a local package

USAGE:
cargo test [OPTIONS] [TESTNAME] [-- <args>...]

OPTIONS:
-q, --quiet Display one character per test instead of one line
...
--features <FEATURES>... Space-separated list of features to activate
--all-features Activate all available features

cargo test --features foo testing_with_foocargo test --all-features testing_with_foo 都不起作用。

执行此操作的正确方法是什么?

最佳答案

解决方案是@Jmb 提出的:assert!(cfg!(feature = "foo"));。 Cargo Book 中的内容

This can be tested in code via #[cfg(feature = "foo")].

允许确认条件编译是否有效,但不提供可以测试的 bool 值。如果你想在运行时根据特性进行分支,你需要cfg!

关于unit-testing - 如何测试 Rust 中的可选功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58906379/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com