Как пропустить модульный тест в Django?

Как принудительно пропустить модульный тест в Django?

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


person user798719    schedule 08.07.2013    source источник


Ответы (2)


В модуле 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

Документы о пропуске тестов

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

person Ray Toal    schedule 08.07.2013
comment
Ах, я не знал, что вы можете обмануть интерпретатора с помощью этого аргумента True. Спасибо! - person user798719; 08.07.2013
comment
Не могли бы вы рассказать о возможных причинах невозможности использовать @skip? - person Kal; 04.10.2018
comment
Вы даже можете пропустить занятия TestCase. - person wieczorek1990; 20.05.2019

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
person YPCrumble    schedule 21.09.2016
comment
Есть ли противоположность --exclude-tag, например --include-tag, но этой команды не существует. - person JohnnyQ; 07.10.2019
comment
@JohnnyQ docs.djangoproject.com/en/3.0/topics / testing / tools / - person YPCrumble; 07.10.2019