Подтвердить что ты не робот

Как вы пропустите unit test в Django?

Как принудительно пропустить unit test в Django?

@skipif и @skipunless - это все, что я нашел, но я просто хочу пропустить тест прямо сейчас для целей отладки, в то время как я получаю несколько поправок.

4b9b3361

Ответ 1

В модуле python unittest есть несколько декораторов:

Существует простой старый @skip:

from unittest import skip

@skip("Don't want to test")
def test_something():
    ...

Если вы не можете использовать @skip по какой-то причине, @skipIf должен работать. Просто обманите его, чтобы всегда пропустить с аргументом True:

@skipIf(True, "I don't want to run this test yet")
def test_something():
    ...

unittest docs

Документы о пропущенных тестах

Если вы хотите просто не запускать определенные тестовые файлы, лучшим способом, вероятно, является использование fab или другого инструмента и выполнение определенных тестов.

Ответ 2

Django 1.10 позволяет использовать теги для модульных тестов. Затем вы можете использовать флаг --exclude-tag=tag_name для исключения определенных тегов:

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):
        ...

В приведенном выше примере, чтобы исключить тесты с тегом < slow ", который вы запускаете:

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