pycharm pytest

No se puede depurar en pycharm con pytest



(3)

No puedo depurar en PyCharm usando py.test. Todo el conjunto de pruebas se ejecuta correctamente en "Modo de depuración", pero no se detiene en los puntos de interrupción.

También tengo py.test como el corredor de prueba predeterminado.

Quizás esto no sea importante, pero la depuración funciona correctamente en mi servidor Django.

¿Algunas ideas?

imagen de enable_breakpoints_and_the_mode_of_pycharm_is_ debug

Referencias:

pycharm-enabling-disabling-and-removing-breakpoints

Ejecutar / Depurar configuración: py.test


Lo que me arregló fue agregar el --no-cov a los Additional Arguments en las Run/Debug Configurations . Templates -> Python tests -> pytest las Templates -> Python tests -> pytest , por lo que cada nueva prueba obtiene esta configuración.
Simplemente elimine su configuración de depuración actual y funcionará.

Pycharm 2018.3.x


Para mi situación, encontré cuál es el problema:

Si hay --cov en pytest.ini , los puntos de interrupción en pycharm no funcionarán, después de eliminar todo --cov en pytest.ini , los puntos de interrupción en pycharm pueden funcionar.

Razón:

"El módulo de cobertura y el depurador de pycharm utilizan el mismo api de rastreo (sys.settrace), no funcionan juntos". - https://github.com/pytest-dev/pytest-cov/issues/131

Referencias:

Cómo depurar py.test en PyCharm cuando la cobertura está habilitada


TL; DR: Deshabilita el indicador "Compatible con Gevent" en "Compilación, ejecución, implementación" -> "Depurador de Python".

Parece que en algún momento habilité el depurador "compatible con Gevent" en pycharm, y desde entonces pytest-pycharm dejó de funcionar. Al desactivarlo, Pytest-pycharm volverá a funcionar. Espero que esto resuelva el problema para algunos de ustedes.