このunittest
モジュールでは、テストをスキップする機能が気に入っていますが、Python2.7以降でのみ使用できます。
たとえば、次のことを考慮して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()
以前のバージョンのPythonでテストを実行しようとすると、エラーが発生します。
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'
古いバージョンのPythonを「だまして」、単体テストのデコレータを無視し、テストをスキップする方法はありますか?