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

Фильтр тестов

Фильтр тестов - это механизм, встроенный в cargo test, который позволяет запускать не все тесты сразу, а только те, чьи имена совпадают с заданным шаблоном. Параметром фильтра выступает строка-подстрока, которая передается в командной строке после cargo test. Фильтр сравнивает эту подстроку с полным именем каждого теста и запускает только совпавшие.

Синтаксис

cargo test <фильтр>

Пример

Давайте создадим модуль с тестами и применим к нему фильтр. В файле src/lib.rs разместим три теста:

pub fn add(a: i32, b: i32) -> i32 { a + b } pub fn sub(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_sub() { assert_eq!(sub(5, 3), 2); } #[test] fn test_add_negative() { assert_eq!(add(-2, -3), -5); } }

Запустим только те тесты, в имени которых встречается подстрока add:

cargo test add

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

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; 1 filtered out

Пример

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

cargo test sub

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

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

Пример

Фильтр можно комбинировать с флагом -- для передачи аргументов тестовому бинарнику. Давайте запустим тесты с фильтром test и покажем вывод каждого теста:

cargo test test -- --show-output

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

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

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

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