24.8 Development Dependencies

Sometimes you need dependencies only for tests (or examples, or benchmarks). Such dependencies belong in the [dev-dependencies] section of Cargo.toml. They are not propagated to other packages depending on your crate.

One example is pretty_assertions, which replaces the standard assert_eq! and assert_ne! macros with colorized diffs. In Cargo.toml:

[dev-dependencies]
pretty_assertions = "1"

In src/lib.rs:

pub fn add(a: i32, b: i32) -> i32 {
    a + b
}

#[cfg(test)]
mod tests {
    use super::*;
    use pretty_assertions::assert_eq; // Used only in tests.

    #[test]
    fn test_add() {
        assert_eq!(add(2, 3), 5);
    }
}