noseでテストをスキップする

noseでテストをスキップするには、SkipTest例外を発生させればいいらしい。
Python2.7であれば、unittestモジュールにSkipTestクラスがある。
Pythonが古いバージョンの場合は、nose.plugins.skip.SkipTestを使うことで対応できる。
ちなみにunittest2モジュールのSkipTestクラスではスキップしてくれなかった。

tests.py

setUpModuleで例外を発生させているので、モジュール内のテストを全部スキップするコード。

from unittest import TestCase

#from unittest import SkipTest
from nose.plugins.skip import SkipTest


def setUpModule():
    raise SkipTest


class MyTestCase(TestCase):
    def test(self):
        self.assertEqual(1 + 1, 2)

実行

$ nosetests
S
----------------------------------------------------------------------
Ran 0 tests in 0.009s

OK (SKIP=1)