Mit dem unittest
Modul mag ich die feature to skip tests, aber es ist nur in Python 2.7 + verfügbar.Verwenden von `@ unittest.skipIf` mit älteren Versionen von Python
Betrachten wir zum Beispiel 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()
Wenn ich versuche, einen Test mit einer früheren Version von Python zu laufen, bekomme ich einen Fehler:
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'
Gibt es eine Möglichkeit, „Trick "ältere Versionen von Python, um den unittest Dekorator zu ignorieren, und den Test zu überspringen?
unittest2 war nicht zufriedenstellend auf meinem Ende, obwohl es funktionierte, spuckt es eine Verwarnungswarnung aus wie: 'DeprecationWarning: Verwendung eines TestResult ohne eine addSkip-Methode ist veraltet self._addSkip (Ergebnis, Skip_why)' konnte ich nicht um es schnell verschwinden zu lassen. –