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


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

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

Author: user798719, 2013-07-08

2 answers

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 puedes usar @skip por alguna razón, @skipIf debería funcionar. Solo trick it para saltar siempre con el argumento True:

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

Unittest docs

Docs on skipping tests

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

 85
Author: Ray Toal,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-01-25 20:53:40

Django 1.10 permite el uso de etiquetas para pruebas unitarias. Luego puede usar la bandera --exclude-tag=tag_name 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 etiqueta" slow"debe ejecutar:

$ ./manage.py test --exclude-tag=slow
 37
Author: YPCrumble,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-09-21 16:27:57