web-dev-qa-db-fra.com

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.

 Debug Mode

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?

 Configuration image de enable_breakpoints_and_the_mode_of_pycharm_is _debug

Références:

pycharm-activation-désactivation-et-suppression-points d'arrêt

Configuration Run/Debug: py.test

22
davyria

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

53
Simin Jie

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.

1
Alessio

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.

 enter image description here

Pycharm 2018.3.x

0
joaoricardo000