Jak przymusowo pominąć test jednostkowy w Django?
@skipif i @skipunless to wszystko, co znalazłem, ale po prostu chcę teraz pominąć test w celu debugowania, a ja wyprostuję kilka rzeczy.
Odpowiedzi:
84 dla odpowiedzi № 1Moduł unittest Pythona ma kilka dekoratorów:
Tam jest zwykły stary @skip
:
from unittest import skip
@skip("Don"t want to test")
def test_something():
...
Jeśli nie możesz tego użyć @skip
z jakiegoś powodu, @skipIf
powinno działać. Po prostu oszukuj, aby zawsze pomijać argument True
:
@skipIf(True, "I don"t want to run this test yet")
def test_something():
...
Dokumenty dotyczące pomijania testów
Jeśli chcesz po prostu nie uruchamiać niektórych plików testowych, najlepiej jest użyć fab
lub inne narzędzie i uruchom konkretne testy.
32 dla odpowiedzi nr 2
Django 1.10 umożliwia korzystanie z tagów do testów jednostkowych. Następnie możesz użyć --exclude-tag=tag_name
flaga, aby wykluczyć niektóre tagi:
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):
...
W powyższym przykładzie, aby wykluczyć swoje testy z "slow
"tag, który uruchamiasz:
$ ./manage.py test --exclude-tag=slow