Зависимости для разработки
Иногда возникает необходимость иметь зависимости только для тестов (или примеров, или бенчмарков). Такие зависимости добавляются в Cargo.toml
в раздел [dev-dependencies]
. Эти зависимости не распространяются как зависимости на другие пакеты, которые зависят от этого пакета.
Одним из таких примеров является пакет pretty_assertions
, который расширяет стандартные макросы assert_eq!
и assert_ne!
, чтобы обеспечить цветной вывод отличий.
Файл Cargo.toml
:
# Стандартное содержимое крейта здесь пропущено
[dev-dependencies]
pretty_assertions = "1"
Файл src/lib.rs
:
pub fn add(a: i32, b: i32) -> i32 {
a + b
}
#[cfg(test)]
mod tests {
use super::*;
use pretty_assertions::assert_eq; // Крейт для использования только во время тестировании. Он не может быть использован вне кода тестов.
#[test]
fn test_add() {
assert_eq!(add(2, 3), 5);
}
}
Смотрите также:
Документация Cargo по указанию зависимостей.