2013-07-08 11 views
49

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

@skipifと@skipunlessは私が見つけたものですが、デバッグの目的で今すぐテストをスキップしたいのですが、いくつかのことを整理します。

昔ながら@skipがあります:あなたが何らかの理由で@skipを使用できない場合は、@skipIfが動作するはず

from unittest import skip 

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

答えて

74

Pythonのunittestのモジュールは、いくつかのデコレータを持っています。

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

unittest docs

Docs on skipping tests

あなたは、単に特定のテストファイルを実行しないために探している場合は、最良の方法はfabか一方を使用することはおそらくです:ちょうど常に引数Trueをスキップすることをだまし特定のテストを実行します。

+0

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

22

ユニットテストのためのDjango 1.10 allows use of tags。あなたはその後、特定のタグを除外する--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 
関連する問題