Z modułem unittest
, podoba mi się feature to skip tests, ale jest dostępne tylko w Pythonie 2.7+.Używanie `@ unittest.skipIf` ze starszymi wersjami Pythona
Na przykład, rozważmy test.py
:
import unittest
try:
import proprietary_module
except ImportError:
proprietary_module = None
class TestProprietary(unittest.TestCase):
@unittest.skipIf(proprietary_module is None, "requries proprietary module")
def test_something_proprietary(self):
self.assertTrue(proprietary_module is not None)
if __name__ == '__main__':
unittest.main()
Gdy próbuję uruchomić test z wcześniejszej wersji Pythona, otrzymuję błąd:
Traceback (most recent call last):
File "test.py", line 7, in <module>
class TestProprietary(unittest.TestCase):
File "test.py", line 8, in TestProprietary
@unittest.skipIf(proprietary_module is None, "requries proprietary module")
AttributeError: 'module' object has no attribute 'skipIf'
Czy istnieje sposób na „trick "starsze wersje Pythona, aby zignorować architekta Unittest i pominąć test?
unittest2 nie był satysfakcjonujący na moim końcu, chociaż zadziałało, wypluwa ostrzeżenie o przestarzałości, takie jak: 'DeprecationWarning: użycie TestResult bez metody addSkip jest przestarzałe self._addSkip (result, skip_why)' Nie byłem w stanie aby szybko zniknął. –