如何在 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. 测试