155 votes

Comment puis-je exécuter un seul test avec Nose in Pylons

J'ai une application Pylons 1.0 avec un tas de tests dans le répertoire test / fonctionnel. Je reçois des résultats de test étranges et je veux juste exécuter un seul test. La documentation sur le nez indique que je devrais pouvoir passer un nom de test sur la ligne de commande, mais j'obtiens ImportErrors peu importe ce que je fais.

Par exemple:

 nosetests -x -s sometestname
 

Donne:

 Traceback (most recent call last):
  File "/home/ben/.virtualenvs/tsq/lib/python2.6/site-packages/nose-0.11.4-py2.6.egg/nose/loader.py", line 371, in loadTestsFromName
   module = resolve_name(addr.module)
  File "/home/ben/.virtualenvs/tsq/lib/python2.6/site-packages/nose-0.11.4-py2.6.egg/nose/util.py", line 334, in resolve_name
   module = __import__('.'.join(parts_copy))
ImportError: No module named sometestname
 

Je reçois la même erreur pour

 nosetests -x -s appname.tests.functional.testcontroller
 

Quelle est la syntaxe correcte?

237voto

Antoine Leclair Points 5818

nosetests appname.tests.functional.test_controller devrait fonctionner, où le fichier est nommé test_controller.py .

Pour exécuter une classe et une méthode de test spécifiques, utilisez un chemin d'accès de la forme module.path:ClassNameInFile.method_name , c'est-à-dire avec un signe deux-points séparant le chemin d'accès module / fichier et les objets contenus dans le fichier. module.path est le chemin relatif du fichier (par exemple, tests/my_tests.py:ClassNameInFile.method_name ).

47voto

Kee Points 458

Pour moi, avec Nosetests 1.3.0, ces variantes fonctionnent (mais assurez-vous que vous avez __init__.py dans votre dossier tests):

 nosetests [options] tests.ui_tests
nosetests [options] tests/ui_tests.py
nosetests [options] tests.ui_tests:TestUI.test_admin_page
 

Notez que deux points entre le nom du module et le nom de la classe.

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