Jak na siłę pominąć test jednostkowy w Django?
@skipif i @skipunless to wszystko, co znalazłem, ale chcę teraz tylko pominąć test do celów debugowania, podczas gdy kilka rzeczy zostanie wyjaśnionych.
Jak na siłę pominąć test jednostkowy w Django?
@skipif i @skipunless to wszystko, co znalazłem, ale chcę teraz tylko pominąć test do celów debugowania, podczas gdy kilka rzeczy zostanie wyjaśnionych.
Odpowiedzi:
Moduł unittest w Pythonie ma kilka dekoratorów:
Jest zwykły stary @skip
:
from unittest import skip
@skip("Don't want to test")
def test_something():
...
Jeśli @skip
z jakiegoś powodu nie możesz użyć , @skipIf
powinno działać. Po prostu oszukuj, aby zawsze przeskakiwać z argumentem True
:
@skipIf(True, "I don't want to run this test yet")
def test_something():
...
Jeśli nie chcesz po prostu uruchamiać niektórych plików testowych, najlepszym sposobem jest prawdopodobnie użycie fab
lub innego narzędzia i uruchomienie określonych testów.
@skip
możesz używać ?
Django 1.10 pozwala na używanie tagów do testów jednostkowych. Następnie możesz użyć --exclude-tag=tag_name
flagi, aby wykluczyć określone 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ć testy za pomocą slow
tagu „ ”, należy:
$ ./manage.py test --exclude-tag=slow
--exclude-tag
np. --include-tag
Ale to polecenie nie istnieje.