Wie kann man einen Unit-Test in Django zwangsweise überspringen?
@skipif und @skipunless sind alles, was ich gefunden habe, aber ich möchte jetzt nur einen Test zum Debuggen überspringen, während ich ein paar Dinge klarstelle.
Wie kann man einen Unit-Test in Django zwangsweise überspringen?
@skipif und @skipunless sind alles, was ich gefunden habe, aber ich möchte jetzt nur einen Test zum Debuggen überspringen, während ich ein paar Dinge klarstelle.
Antworten:
Pythons unittestes Modul hat einige Dekorateure:
Es ist einfach alt @skip
:
from unittest import skip
@skip("Don't want to test")
def test_something():
...
Wenn Sie @skip
aus irgendeinem Grund nicht verwenden können , @skipIf
sollte funktionieren. Trick es einfach, um immer mit dem Argument zu überspringen True
:
@skipIf(True, "I don't want to run this test yet")
def test_something():
...
Dokumente zum Überspringen von Tests
Wenn Sie bestimmte Testdateien einfach nicht ausführen möchten, ist es wahrscheinlich am besten, ein fab
anderes Tool zu verwenden und bestimmte Tests auszuführen.
@skip
?
Django 1.10 ermöglicht die Verwendung von Tags für Unit-Tests. Sie können dann das --exclude-tag=tag_name
Flag verwenden, um bestimmte Tags auszuschließen:
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):
...
Im obigen Beispiel slow
würden Sie Folgendes ausführen , um Ihre Tests mit dem Tag " " auszuschließen :
$ ./manage.py test --exclude-tag=slow
--exclude-tag
zB, --include-tag
aber dieser Befehl ist nicht vorhanden.