Spécifier des noms sur la ligne de commande comme le suggèrent les autres réponses fonctionne et est utile. Cependant, lorsque je suis en train d'écrire des tests, je trouve souvent que je veux exécuter uniquement le test sur lequel je travaille, et les noms que je devrais écrire sur la ligne de commande deviennent assez longs et difficiles à écrire . Dans ce cas, je préfère utiliser un décorateur et un drapeau personnalisés.
Je définis wipd("décorateur de travaux en cours") comme ceci:
from nose.plugins.attrib import attr
def wipd(f):
return attr('wip')(f)
Cela définit un décorateur @wipdqui définira l' wipattribut sur les objets qu'il décore. Par exemple:
import unittest
class Test(unittest.TestCase):
@wipd
def test_something(self):
pass
Puis -a wippeut être utilisé sur la ligne de commande pour restreindre l'exécution du test à ceux marqués par @wipd.
Note sur les noms ...
J'utilise le nom @wipddu décorateur plutôt que @wippour éviter ce genre de problème:
import unittest
class Test(unittest.TestCase):
from mymodule import wip
@wip
def test_something(self):
pass
def test_something_else(self):
pass
Le importfera du wipdécorateur un membre de la classe , et tous les tests de la classe seront sélectionnés. Le attribplugin vérifie la classe parente d'une méthode de test pour voir si l'attribut sélectionné existe également, et les attributs créés et testés par attribn'existent pas dans un espace séparé. Donc, si vous testez avec -a fooet que votre classe contient foo = "platypus", alors tous les tests de la classe seront sélectionnés par le plugin.