Con il modulo unittest
, mi piace lo feature to skip tests, ma è disponibile solo in Python 2.7+.Uso di `@ unittest.skipIf` con versioni precedenti di Python
Ad esempio, si consideri 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()
Se provo a eseguire un test con una versione precedente di Python, ottengo un errore:
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'
c'è un modo per "trucco "versioni precedenti di Python per ignorare il decoratore unittest e saltare il test?
Unittest2 non è stato soddisfacente da parte mia, anche se ha funzionato, emette un avviso di deprecazione come: 'DeprecationWarning: l'uso di un TestResult senza un metodo addSkip è deprecato self._addSkip (risultato, skip_why)' Non ero in grado per farlo sparire rapidamente. –