Con el módulo unittest
, me gusta el feature to skip tests, pero solo está disponible en Python 2.7+.Usando `@ unittest.skipIf` con versiones anteriores de Python
Por ejemplo, considere 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()
Si trato de realizar una prueba con una versión anterior de Python, me sale un error:
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'
¿Hay una manera de "engañar "versiones anteriores de Python para ignorar el decorador unittest y omitir la prueba?
unittest2 no fue satisfactorio en mi extremo, aunque funcionó, escupe una advertencia de deprecation como: 'DeprecationWarning: El uso de un TestResult sin un método addSkip está en desuso self._addSkip (resultado, skip_why)' No pude para que desaparezca rápidamente –