Python Glossary English

все Python 3unittestфункция

unittest.skipUnless()

пропуск тестов

Декоратор, пропускающий тест, если условие ложно: запускает тест, только когда, например, нужный модуль или ОС доступны.

Синтаксис

@unittest.skipUnless(condition, reason)

Зеркало skipIf: skipUnless(cond, r) — то же, что skipIf(not cond, r), и перепутать их значит пропускать тест ровно там, где его надо гонять. Удобный шаблон — проверка наличия зависимости: импорт в try/except на уровне модуля и @skipUnless(HAS_NUMPY, ...). Условие, как и у skipIf, считается при импорте модуля.

Примеры

import unittest
try:
    import no_such_module_xyz
    HAS_MODULE = True
except ImportError:
    HAS_MODULE = False
class Tests(unittest.TestCase):
    @unittest.skipUnless(HAS_MODULE, 'no_such_module_xyz не установлен')
    def test_feature(self):
        pass
result = unittest.TestResult()
unittest.TestLoader().loadTestsFromTestCase(Tests).run(result)
print(result.skipped[0][1])  # → no_such_module_xyz не установлен

См. также

Частые ошибки

Открыть в полном глоссарииdocs.python.orgСообщить о неточности