web-dev-qa-db-ja.com

Djangoで単体テストをスキップするにはどうすればよいですか?

Djangoでユニットテストを強制的にスキップするにはどうすればよいですか?

@skipifと@skipunlessだけが見つかりましたが、デバッグのために今すぐテストをスキップして、いくつかの問題を解決したいと思います。

78
user798719

Pythonのunittestモジュールには、いくつかのデコレーターがあります。

昔ながらの@skipがあります:

from unittest import skip

@skip("Don't want to test")
def test_something():
    ...

何らかの理由で@skipを使用できない場合は、@skipIfが機能するはずです。常に引数Trueでスキップするように、それをだましてください:

@skipIf(True, "I don't want to run this test yet")
def test_something():
    ...

nittest docs

テストのスキップに関するドキュメント

特定のテストファイルを単に実行しない場合は、おそらくfabまたは他のツールを使用して特定のテストを実行することをお勧めします。

117
Ray Toal

Django 1.10 タグの使用を許可 単体テスト用。その後、--exclude-tag=tag_name特定のタグを除外するフラグ:

from Django.test import tag

class SampleTestCase(TestCase):

    @tag('fast')
    def test_fast(self):
        ...

    @tag('slow')
    def test_slow(self):
        ...

    @tag('slow', 'core')
    def test_slow_but_core(self):
        ...

上記の例では、「slow」タグを使用してテストを除外するには、次を実行します。

$ ./manage.py test --exclude-tag=slow
52
YPCrumble