все 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Сообщить о неточности