L'exécution de paquet Python tests unitaires dans PyCharm
Je viens de 'porté' un paquet Python je suis en train d'écrire à PyCharm et d'avoir un peu de difficultés à exécuter des tests unitaires pour l'ensemble du paquet à partir de l'IDE.
Dans __init__.py
pour le paquet que j'ai load_tests
fonction qui va au-dessus de tous les modules dans le colis et de charges de tests pertinents. Il fonctionne magnifiquement avec:
$python -m unittest my_package
Cependant, lorsque j'essaie de courir à partir de PyCharm (en sélectionnant le répertoire supérieur dans les Projets de fenêtre et de frapper Ctrl+Maj+F10), j'ai No tests were found
dans la fenêtre Exécuter, et
...\python.exe ...\pycharm\utrunner.py .../my_package/true
Testing started at ...
Process finished with exit code 0
Empty test suite.
dans la fenêtre de la console.
J'ai pris un coup d'oeil rapide à PyCharm de utrunner.py
et il semble qu'il est à la recherche pour les modules avec un certain modèle (qui commencent avec test). J'aimerais conserver le présent vanille approche. Comment puis-je configurer PyCharm à utiliser load_tests
de __init__.py
tout en modifiant le code aussi peu que possible?
Par la voie, des suites de test pour les modules individuels à exécuter simplement une amende de PyCharm.
À L'Aide De PyCharm 3.1 Community Edition, Python 2.7.
Vous en remercie d'avance.
Vous devez vous connecter pour publier un commentaire.
Cette réponse a été écrite en considérant PyCharm 3.4.
Eu le même problème, a trouvé une solution pour le problème dans cette réponse, j'espère bien compris votre question de droit:
https://stackoverflow.com/a/12242021/2427749
J'ai configuré mon Python lanceur de Test de configuration comme ceci:
Maintenant, il trouve mon unitests dans mon sous-dossiers nommés comme
classToBeTested_Test.py
par le chemin, je suis confronté à un autre problème maintenant: l'unité de test ne peut pas importer le module à tester. La Cause de racine différente de dossier je pense.
Settings > Project Structure > Add Content Root
.*Test.py
. Si utiliser quelque chose comme le lanceur de test en panne. Je ne savais pas qu'il voulait une expression régulière jusqu'à ce que j'ai regardé la trace de la pile!**_test.py
Avec PyCharm 2016.2 utilisation:
/path/to/tests/__init__.py
utrunner
à utiliserunittest.TestLoader.loadTestsFromModule()
et que l'appel de la méthodeload_tests()
si présent dans le module.I. e. la commande est
J'ai dû supprimer le répertoire tests de la
sys.path
dans le__init__.py
(voir PY-15889):