РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
813 of 1245 menu

Команда cargo test

Команда cargo test запускает все тесты, определённые в проекте Rust. Она компилирует код в режиме тестирования и выполняет функции, помеченные атрибутом #[test]. Команда принимает различные флаги и фильтры, позволяющие управлять запуском тестов: выбирать конкретные тесты по имени, показывать вывод, запускать тесты параллельно или последовательно.

Синтаксис

cargo test [OPTIONS] [TESTNAME] [-- [ARGS]]

Пример

Давайте создадим простой проект с тестами и запустим команду cargo test. Сначала определим функцию и тест в файле src/lib.rs:

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); } #[test] fn test_add_negative() { assert_eq!(add(-1, -1), -2); } }

Теперь запустим команду cargo test в терминале:

$ cargo test

Результат выполнения команды:

running 2 tests test tests::test_add ... ok test tests::test_add_negative ... ok test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out

Пример

Давайте запустим только один конкретный тест, передав его имя в качестве аргумента:

$ cargo test test_add_negative

Результат выполнения команды:

running 1 test test tests::test_add_negative ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out

Пример

Давайте запустим тесты с флагом --show-output, чтобы увидеть вывод функции println! внутри тестов:

#[test] fn test_with_output() { println!("running test_with_output"); assert_eq!(2 + 2, 4); }

Запустим команду с флагом:

$ cargo test test_with_output -- --show-output

Результат выполнения команды:

running 1 test test test_with_output ... ok successes: ---- test_with_output stdout ---- running test_with_output test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out

Смотрите также

  • атрибут test,
    который помечает функцию как тестовую
  • атрибут cfg(test),
    который включает модуль только при тестировании
  • макрос assert_eq!,
    который проверяет равенство двух значений
  • атрибут should_panic,
    который проверяет, что тест вызывает панику
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить