Dev-dependencies - Rust By Example
Description: A description

# Development dependencies

Sometimes there is a need to have a dependencies for tests (examples, benchmarks) only. Such dependencies are added to `Cargo.toml` in `[dev-dependencies]` section. These dependencies are not propagated to other packages which depend on this package.

One such example is using a crate that extends standard `assert!` macros.
File `Cargo.toml`:

    # standard crate data is left out
    [dev-dependencies]
    pretty_assertions = "0.4.0"

File `src/lib.rs`:

    // externing crate for test-only use
    #[cfg(test)]
    #[macro_use]
    extern crate pretty_assertions;

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

    #[cfg(test)]
    mod tests {
        use super::*;

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

## See Also

Cargo docs on specifying dependencies.