blob: 9d4c3c63c03434474683eba7b85c882dbbe08c5f [file] [log] [blame] [view]
# Development dependencies
Sometimes there is a need to have dependencies for tests (or examples,
or benchmarks) only. Such dependencies are added to `Cargo.toml` in the
`[dev-dependencies]` section. These dependencies are not propagated to other
packages which depend on this package.
One such example is [`pretty_assertions`](https://docs.rs/pretty_assertions/1.0.0/pretty_assertions/index.html), which extends standard `assert_eq!` and `assert_ne!` macros, to provide colorful diff.
File `Cargo.toml`:
```toml
# standard crate data is left out
[dev-dependencies]
pretty_assertions = "1"
```
File `src/lib.rs`:
```rust,ignore
pub fn add(a: i32, b: i32) -> i32 {
a + b
}
#[cfg(test)]
mod tests {
use super::*;
use pretty_assertions::assert_eq; // crate for test-only use. Cannot be used in non-test code.
#[test]
fn test_add() {
assert_eq!(add(2, 3), 5);
}
}
```
## See Also
[Cargo][cargo] docs on specifying dependencies.
[cargo]: http://doc.crates.io/specifying-dependencies.html