Wie man Abhängigkeiten nur für Tests in Rust/Cargo richtig definiert?
Hallo Kollegen! Ich habe angefangen, Rust zu lernen, und bin beim Schreiben von Tests auf ein Problem gestoßen. Ich muss die Crate `rand` verwenden, um in Tests Zufallsdaten zu generieren, möchte aber nicht, dass sie eine Abhängigkeit in der endgültigen Build-Version ist.
Ich habe `rand` im Abschnitt `[dependencies]` in `Cargo.toml` hinzugefügt, aber das erhöht die Größe des Binaries und die Kompilierzeit. Wie kann ich Abhängigkeiten nur für Tests richtig auslagern?
Ich habe es so versucht:
```toml
[dev-dependencies]
rand = "0.8"
```
Aber dann kann ich in den Tests nicht importieren: `use rand::Rng;` — der Compiler beschwert sich, dass die Crate nicht gefunden wurde.
Ich habe auch versucht, `#[cfg(test)]` für bedingte Kompilierung zu verwenden, verstehe aber nicht, wie man das richtig auf Abhängigkeiten anwendet.
Könnt ihr mir bitte erklären, wie man in Rust/Cargo Test-Abhängigkeiten (test-only dependencies) organisiert? Ich brauche:
1. Crates wie `rand`, `tempfile`, `mockall` sollen nur beim Ausführen von `cargo test` eingebunden werden.
2. In der Production-Build-Version sollen diese Crates weder die Größe noch die Kompilierzeit beeinflussen.
3. Tests