198 votes

Comment configurer PyCharm pour qu'il exécute les tests py.test ?

Je souhaite commencer à écrire des tests unitaires pour mon code Python, et l'outil py.test semble être un meilleur pari que le cadre de Python. unittest . J'ai donc ajouté un répertoire "tests" à mon projet, et j'ai ajouté test_sample.py à elle. Je veux maintenant configurer PyCharm pour qu'il exécute tous les tests de mon répertoire "tests".

PyCharm prétendument supporte py.test dans son programme de test. Vous êtes censé pouvoir créer une configuration d'exécution/débogage pour exécuter vos tests, et PyCharm a prétendument une fonction Boîte de dialogue "créer une configuration" spécifique pour py.test . Mais c'est là toute l'étendue de leur documentation sur le sujet, et je ne trouve nulle part cette prétendue boîte de dialogue.

Si je clique avec le bouton droit de la souris sur le répertoire dans la fenêtre de l'outil Projet, j'obtiens supposé pour voir un élément de menu "Créer <nom>", mais le seul élément de menu commençant par "Créer" est "Créer une configuration d'exécution". D'accord, la documentation est peut-être erronée, et "Créer une configuration d'exécution" semble prometteur. Malheureusement, les deux seuls éléments de son sous-menu sont "Unittests in C:\mypath... "et "Doctests in C:\mypath... "Je n'utilise ni unittest ni doctest. Il n'y a pas d'élément de menu pour py.test.

Si j'ouvre mon test_sample.py et que je fais un clic droit dans la fenêtre de l'éditeur, j'obtiens les éléments de menu "Create <name>" promis : il y a "Create 'Unittests in test_sa...'...", suivi de "Run 'Unittests in test_sa...'" et "Debug 'Unittests in test_sa...'". Encore une fois, tout cela est spécifique au framework unittest ; rien pour py.test.

Si j'essaie les éléments de menu qui disent "unittest", j'obtiens une boîte de dialogue avec des options pour "Name", "Type", un cadre "Tests" avec "Folder" et "Pattern" et "script" et "Class" et "Function", etc. Cela ressemble exactement à ce qui est documenté comme étant la boîte de dialogue permettant d'ajouter un configuration pour les tests unitaires Python et non comme les options "Nom", "Test à exécuter" et "Mots-clés" qui sont censées s'afficher dans l'écran d'accueil. configuration pour py.test dialogue. Il n'y a rien dans la boîte de dialogue qui permette de changer le cadre de test que j'ajoute.

J'utilise PyCharm 1.5.2 sur Windows avec Python 3.1.3 et pytest 2.0.3. Je peux exécuter avec succès py.test sur mes tests à partir de la ligne de commande, donc ce n'est pas quelque chose de simple comme pytest qui n'est pas installé correctement.

Comment configurer PyCharm pour qu'il exécute mes tests py.test ?

0voto

AnneTheAgile Points 2105

Avec une configuration spéciale de Conda python qui incluait l'installation de pip pour py.test plus l'utilisation de l'addin Specs (option --spec) (pour Rspec comme un joli langage de résumé de test), j'ai dû faire ;

1) Modifier le py.test par défaut pour inclure l'option= --spec , ce qui signifie utiliser le plugin : https://github.com/pchomik/pytest-spec

2. créer une nouvelle configuration de test, en utilisant py.test. Changez son interpréteur python pour utiliser ~/anaconda/envs/ votre choix d'interpréteurs, par exemple py27 pour mes noms.

3. supprimer la configuration de test "unittests".

4. la configuration de test par défaut est py.test avec mes jolies sorties de style Rspec. J'adore ! Merci à tous !

p.s. La documentation de Jetbrains sur les configurations run/debug est ici : https://www.jetbrains.com/help/pycharm/2016.1/run-debug-configuration-py-test.html?search=py.test

0voto

sfjac Points 1096

Avec 2018.3, il semble détecter automatiquement que j'utilise pytest, ce qui est bien, mais il ne permet toujours pas l'exécution à partir du niveau supérieur du projet. J'ai dû exécuter pytest pour chaque tests individuellement.

Cependant, j'ai découvert que je pouvais choisir l'une des configurations et la modifier manuellement pour qu'elle s'exécute à la racine du projet, et que cela fonctionnait. Je dois la choisir manuellement dans la liste déroulante des configurations - je ne peux pas faire un clic droit sur le dossier Racine dans le volet Projet. Mais au moins, cela me permet d'exécuter tous les tests en même temps.

0voto

mon Points 1271

Il existe une documentation sur PyCharm : Configuration de l'exécution/du débogage : pytest disponible à partir de septembre 2020.

enter image description here

0voto

Je suis tombé sur un cas un peu différent mais la même erreur (je ne peux pas passer l'erreur ici car elle a déjà été corrigée).

Vérifiez que vous avez bien pytest installé à l'intérieur de votre véhicule. J'ai pytest installé globalement et cela m'a troublé.

Si pip dit que pytest est déjà installé, vérifiez de quel type de pip il s'agit (pip global ou pip de venv).

which python devrait renvoyer le chemin vers votre python venv. Dans ce cas python -m pip install pytest

0voto

Galoperidol Points 33

A moi l'aide prochaine solution :

  1. Aller dans les paramètres de la configuration
  2. Ajouter une nouvelle configuration
  3. Supprimer les anciennes configurations enter image description here

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