¿Cómo se salta una prueba unitaria en Django?


92

¿Cómo omitir por la fuerza una prueba unitaria en Django?

@skipif y @skipunless es todo lo que encontré, pero solo quiero omitir una prueba ahora mismo con fines de depuración mientras soluciono algunas cosas.

Respuestas:


147

El módulo unittest de Python tiene algunos decoradores:

Hay simplemente viejo @skip:

from unittest import skip

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

Si no puede usar @skippor alguna razón, @skipIfdebería funcionar. Simplemente engañelo para omitir siempre el argumento True:

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

unittest docs

Documentos sobre cómo omitir pruebas

Si está buscando simplemente no ejecutar ciertos archivos de prueba, la mejor manera probablemente sea usar fabu otra herramienta y ejecutar pruebas particulares.


Ahh, no sabía que se podía engañar al intérprete con ese argumento de True. ¡Gracias!
— user798719

¿Podría explicar las posibles razones por las que no se puede utilizar @skip?
— Kal

1
Incluso puede omitir las clases de TestCase.
— wieczorek1990

63

Django 1.10 permite el uso de etiquetas para pruebas unitarias. Luego puede usar la --exclude-tag=tag_namebandera para excluir ciertas etiquetas:

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

En el ejemplo anterior, para excluir sus pruebas con la slowetiqueta " ", ejecutaría:

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

¿Existe un opuesto a --exclude-tag, por ejemplo, --include-tagpero este comando no existe?
— JohnnyQ

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.