J'ai un fichier appelé test_web.py contenant une classe TestWeb et de nombreuses méthodes nommées comme test_something ().
Je peux exécuter tous les tests de la classe comme ceci:
$ nosetests test_web.py
...
======================================================================
FAIL: checkout test
----------------------------------------------------------------------
Traceback (most recent call last):
File "/Users/me/path/here/test_web.py", line 187, in test_checkout
...
Mais je n'arrive pas à exécuter des tests individuels. Celles-ci me donnent des erreurs «Aucun test de ce type» lorsqu'elles sont exécutées dans le même PWD:
$ nosetests test_web.py:test_checkout
$ nosetests TestWeb:test_checkout
Qu'est-ce qui ne va pas ici?
Réponses:
Vous devez le spécifier comme ceci:,
nosetests <file>:<Test_Case>.<test_method>
ouVoir la documentation
la source
Vous pouvez également spécifier un module:
la source
nosetests
ou quoi, mais cette syntaxe échoue. Ce qui fonctionne, cependant, c'estnosetests tests/test_integration:IntegrationTests.test_user_search_returns_users
/
.
tests
pas un module dans votre configuration?__init__.py
dans l'tests
annuaire. Bien joué! MerciSpé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:Cela définit un décorateur
@wipd
qui définira l'wip
attribut sur les objets qu'il décore. Par exemple: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:Le
import
fera duwip
décorateur un membre de la classe , et tous les tests de la classe seront sélectionnés. Leattrib
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 parattrib
n'existent pas dans un espace séparé. Donc, si vous testez avec-a foo
et que votre classe contientfoo = "platypus"
, alors tous les tests de la classe seront sélectionnés par le plugin.la source
Pour exécuter plusieurs tests spécifiques, vous pouvez simplement les ajouter à la ligne de commande, séparés par un espace.
la source
Dans mes tests, spécifier des tests avec des noms de module ne fonctionne pas
Vous devez spécifier le chemin réel vers
.py
:Ceci avec
nose==1.3.7
la source
Mon exigence était d'exécuter un seul test dans un fichier de test qui se trouvait dans un autre répertoire Windows - cela a été fait à partir de l' invite de commande anaconda comme suit:
a effectué nos tests de:
mais test_MyTestFile.py et methodsFile.py étaient dans:
exécutez un test unique en incluant le chemin avec des guillemets comme suit:
test_MyTestFile.py ressemblait à ceci:
methodsFile.py ressemblait à ceci:
la source