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 @wipd
qui définira l' wip
attribut sur les objets qu'il décore. Par exemple:
import unittest
class Test(unittest.TestCase):
@wipd
def test_something(self):
pass
Puis -a wip
peut ê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 @wipd
du décorateur plutôt que @wip
pour é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 import
fera du wip
décorateur un membre de la classe , et tous les tests de la classe seront sélectionnés. Le attrib
plugin 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 attrib
n'existent pas dans un espace séparé. Donc, si vous testez avec -a foo
et que votre classe contient foo = "platypus"
, alors tous les tests de la classe seront sélectionnés par le plugin.