Avatar ·

如何在 Rust/Cargo 中正确指定仅用于测试的依赖?

大家好!我开始学习 Rust,在编写测试时遇到了一个问题。我需要在测试中使用 `rand` crate 生成随机数据,但我不希望它成为最终构建的依赖。 我把 `rand` 添加到了 `Cargo.toml` 的 `[dependencies]` 部分,但这增加了二进制文件的大小和编译时间。如何正确地将依赖仅用于测试? 我尝试这样写: ```toml [dev-dependencies] rand = "0.8" ``` 但在测试中无法导入:`use rand::Rng;` —— 编译器报错说找不到 crate。 我还尝试使用 `#[cfg(test)]` 进行条件编译,但不知道如何正确应用于依赖。 请告诉我如何在 Rust/Cargo 中组织仅用于测试的依赖(test-only dependencies)?我需要: 1. 像 `rand`、`tempfile`、`mockall` 这样的 crate 仅在运行 `cargo test` 时引入。 2. 在生产构建中,这些 crate 不影响大小和编译时间。 3. 测试