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

Атрибут #[ignore]

Атрибут #[ignore] применяется к тестовой функции и указывает среде выполнения тестов пропустить эту функцию при обычном запуске. Такой тест не будет выполнен, пока не будет указан специальный флаг. Атрибут не принимает обязательных параметров, но может содержать необязательную строку с причиной игнорирования.

Синтаксис

#[ignore] fn test_name() { // test body }

Также можно указать причину игнорирования теста:

#[ignore = "reason"] fn test_name() { // test body }

Пример

Давайте создадим два теста, один из которых помечен атрибутом #[ignore]:

fn add(a: i32, b: i32) -> i32 { a + b } #[test] fn test_add() { assert_eq!(add(2, 3), 5); } #[test] #[ignore] fn test_add_ignored() { assert_eq!(add(10, 20), 30); } fn main() {}

При запуске команды cargo test будет выполнен только тест test_add, а тест test_add_ignored будет пропущен:

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

Пример

Давайте укажем причину игнорирования теста с помощью строкового параметра:

#[test] #[ignore = "not implemented yet"] fn test_future_feature() { assert_eq!(1 + 1, 2); } fn main() {}

При запуске тестов причина будет отображена в выводе:

running 1 test test test_future_feature ... ignored, not implemented yet test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out

Пример

Игнорируемые тесты можно запустить принудительно с помощью флага --ignored:

#[test] #[ignore] fn test_manual_run() { assert_eq!(5 * 5, 25); } fn main() {}

Команда cargo test -- --ignored выполнит только игнорируемые тесты:

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

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

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