Ответ 1
Используйте unittest2
.
Следующий код импортирует правый unittest
способом, прозрачным для остальной части вашего кода:
import sys
if sys.version_info < (2, 7):
import unittest2 as unittest
else:
import unittest
unittest.skip*
декораторы и методы, как показано ниже (см. здесь для более подробной информации) были добавлены после python2.7, и я обнаружил, что они весьма полезны.
unittest.skip(reason)
unittest.skipIf(condition, reason)
unittest.skipUnless(condition, reason)
Однако, мой вопрос заключается в том, как мы должны делать то же самое, если работаем с python2.6?
Используйте unittest2
.
Следующий код импортирует правый unittest
способом, прозрачным для остальной части вашего кода:
import sys
if sys.version_info < (2, 7):
import unittest2 as unittest
else:
import unittest
Если вы не можете использовать unittest2 и не против иметь другое количество тестов в Python 2.6, вы можете написать простые декораторы, которые заставляют тесты исчезать:
try:
from unittest import skip, skipUnless
except ImportError:
def skip(f):
return lambda self: None
def skipUnless(condition, reason):
if condition:
return lambda x: x
else:
return lambda x: None
Если у вас есть свобода установки дополнительных пакетов, вы можете использовать unittest2
, который представляет собой Python 2.7 unittest, переданный в Python 2.3+. Он содержит декодеры пропуска.