Impossible de déboguer dans pycharm avec pytest
Je ne peux pas debug dans PyCharm en utilisant py.test. Toute la suite de tests fonctionne correctement en "mode débogage" mais elle ne s’arrête pas sur les points d’arrêt.
J'ai aussi py.test comme testeur par défaut.
Peut-être que ce n’est pas important, mais le débogage fonctionne correctement sur mon serveur Django.
Des idées?
image de enable_breakpoints_and_the_mode_of_pycharm_is _debug
Références:
pycharm-activation-désactivation-et-suppression-points d'arrêt
Pour ma situation, j'ai trouvé quel était le problème:
S'il existe --cov
dans pytest.ini
, les points d'arrêt dans pycharm ne fonctionneront pas. Après suppression de tous les --cov
dans pytest.ini
, les points d'arrêt dans pycharm peuvent fonctionner.
Raison:
"Le module de couverture et le débogueur de pycharm utilisent la même API de traçage (sys.settrace). Ils ne fonctionnent pas ensemble." - https://github.com/pytest-dev/pytest-cov/issues/131
Références:
Comment déboguer py.test dans PyCharm lorsque la couverture est activée
TL; DR: Désactivez l'indicateur "Compatible avec Gevent" dans "Construction, exécution, déploiement" -> "Débogueur Python".
Il semble qu’à un moment donné, j’ai activé le débogueur "compatible Gevent" dans pycharm et que depuis lors, pytest-pycharm a cessé de fonctionner. Le désactiver fera fonctionner pytest-pycharm à nouveau. J'espère que cela résoudra le problème pour certains d'entre vous.
Ce qui a été résolu pour moi, c’est d’ajouter le --no-cov
au Additional Arguments
sur le Run/Debug Configurations
. J'ai mis à jour le Templates -> Python tests -> pytest
afin que chaque nouveau test reçoive cette configuration.
Supprimez simplement vos paramètres de débogage actuels et cela fonctionnera.
Pycharm 2018.3.x