Jak pominąć test jednostkowy w Django?


96

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:


152

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 @skipz jakiegoś powodu nie możesz użyć , @skipIfpowinno 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():
    ...

unittest docs

Dokumenty o pomijaniu testów

Jeśli nie chcesz po prostu uruchamiać niektórych plików testowych, najlepszym sposobem jest prawdopodobnie użycie fablub innego narzędzia i uruchomienie określonych testów.


Ach, nie wiedziałem, że tym Prawdziwym argumentem można oszukać tłumacza. Dzięki!
user798719

Czy mógłbyś opisać możliwe powody, dla których nie @skipmożesz używać ?
Kal

1
Możesz nawet pominąć zajęcia TestCase.
wieczorek1990

69

Django 1.10 pozwala na używanie tagów do testów jednostkowych. Następnie możesz użyć --exclude-tag=tag_nameflagi, 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ą slowtagu „ ”, należy:

$ ./manage.py test --exclude-tag=slow

Czy jest coś przeciwnego --exclude-tagnp. --include-tagAle to polecenie nie istnieje.
JohnnyQ,

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.