112 votes

Comment sauter un test unitaire dans Django ?

Comment forcer le saut d'un test unitaire dans Django ?

@skipif et @skipunless sont tout ce que j'ai trouvé, mais je veux juste sauter un test pour le moment à des fins de débogage pendant que je règle quelques détails.

189voto

Ray Toal Points 35382

Le module unittest de Python possède quelques décorateurs :

Il y a le bon vieux @skip :

from unittest import skip

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

Si vous ne pouvez pas utiliser @skip pour une raison quelconque, @skipIf devrait fonctionner. Il suffit de le tromper pour qu'il saute toujours avec l'argument True :

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

documentation sur l'unittest

Les docteurs sur l'omission des tests

Si vous cherchez simplement à ne pas exécuter certains fichiers de test, le meilleur moyen est probablement d'utiliser fab ou un autre outil et exécuter des tests particuliers.

84voto

YPCrumble Points 526

Django 1.10 permet l'utilisation de balises pour les tests unitaires. Vous pouvez alors utiliser le --exclude-tag=tag_name pour exclure certaines balises :

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

Dans l'exemple ci-dessus, pour exclure vos tests avec la balise " slow " que vous exécuteriez :

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X