/ / W jaki sposób pomijasz test jednostkowy w Django? - django, testowanie jednostkowe, pominięcie, django-unittest

Jak pominąć test jednostkowy w Django? - django, testowanie jednostkowe, pominięcie, django-unittest

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 № 1

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

unittest docs

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