mirror of https://github.com/sunface/rust-course
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
34 lines
762 B
34 lines
762 B
3 years ago
|
## 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 using a crate that extends standard assert! macros.
|
||
|
File Cargo.toml:
|
||
|
|
||
|
```toml
|
||
|
# standard crate data is left out
|
||
|
[dev-dependencies]
|
||
|
pretty_assertions = "0.4.0"
|
||
|
```
|
||
|
|
||
|
File `src/lib.rs`:
|
||
|
|
||
|
```toml
|
||
|
// 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);
|
||
|
}
|
||
|
}
|
||
|
```
|