Djangoで単体テストをどのようにスキップしますか?


92

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

@skipifと@skipunlessがすべて見つかりましたが、デバッグのためにテストをスキップしたいのですが、いくつかのことを明確にしています。

回答:


147

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():
    ...

unittest docs

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

特定のテストファイルを単に実行しない場合は、fabまたは他のツールを使用して特定のテストを実行するのが最善の方法です。


ああ、私はあなたがその真の議論で通訳をだますことができることを知りませんでした。ありがとう!
user798719 2013

使用できない理由について詳しく教えてください@skip
Kal

1
TestCaseクラスをスキップすることもできます。
wieczorek1990

63

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

の反対はありますか?--exclude-tagたとえば--include-tag、このコマンドは存在しません。
JohnnyQ、

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.