Управление зависимостями Cargo в Rust

Beginner

This tutorial is from open-source community. Access the source code

Введение

В этом лабораторном задании объясняется концепция зависимостей разработки. Зависимости разработки добавляются в раздел [dev-dependencies] файла Cargo.toml и используются для тестов, примеров или бенчмарков. Примером зависимости разработки является pretty_assertions, который расширяет стандартные макросы, такие как assert_eq! и assert_ne!, чтобы предоставлять цветные различия.

Примечание: Если лабораторная работа не уточняет имя файла, вы можете использовать любое имя файла, которое хотите. Например, вы можете использовать main.rs, скомпилировать и запустить его с помощью rustc main.rs &&./main.

Зависимости разработки

Иногда возникает необходимость иметь зависимости только для тестов (или примеров, или бенчмарков). Такие зависимости добавляются в 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);
    }
}

Резюме

Поздравляем! Вы завершили лабораторную работу по зависимостям разработки. Вы можете практиковаться в более многих лабораторных работах в LabEx, чтобы улучшить свои навыки.