Como você pula um teste de unidade no Django?


92

Como pular forçosamente um teste de unidade no Django?

@skipif e @skipunless foi tudo o que encontrei, mas só quero pular um teste agora para fins de depuração, enquanto ajeito algumas coisas.

Respostas:


144

O módulo de teste de unidade do Python tem alguns decoradores:

É bem velho @skip:

from unittest import skip

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

Se você não puder usar @skippor algum motivo, @skipIfdeve funcionar. Basta enganá-lo para sempre pular com o argumento True:

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

unittest docs

Documentos sobre pular testes

Se você deseja simplesmente não executar determinados arquivos de teste, a melhor maneira é provavelmente usar faboutra ferramenta e executar testes específicos.


Ahh, eu não sabia que você poderia enganar o intérprete com aquele argumento Verdadeiro. Obrigado!
user798719

Você poderia explicar as possíveis razões para não poder usar @skip?
Kal

1
Você pode até mesmo pular as aulas do TestCase.
wieczorek1990

63

Django 1.10 permite o uso de tags para testes de unidade. Você pode então usar o --exclude-tag=tag_namesinalizador para excluir certas tags:

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

No exemplo acima, para excluir seus testes com a slowtag " ", você executaria:

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

Existe um oposto a --exclude-tag, por exemplo, --include-tagmas este comando não existe.
JohnnyQ

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.