I cannot debug in PyCharm using py.test. All the test suite is running ok in \"Debug mode\" but it doesn\'t stop on breakpoints.
I also have py
I know that you had it right, but for me actually setting the Default test runner to pytest
solved the problem.
In PyCharm: Settings
-> Python Integrated Tools
-> Testing section
-> Default test runner
-> choose pytest
from the dropdown menu -> Apply. And it instantly works.
TL;DR: Disable the "Gevent compatible" flag in the "Build, execution, Deployment" -> "Python Debugger".
It seems that at some point I enabled the "Gevent compatible" debugger in pycharm, and since then pytest-pycharm stopped working. Disabling it will make pytest-pycharm work again. I hope this will solve the issue for some of you.
The root issue is debugging does not work if you have coverage enabled by default (usually on pytest.ini).
To disable just on pycharm, just add --no-cov
on the Additional Arguments
on the Run/Debug Configurations
.
Update Templates -> Python tests -> pytest
, so every new test gets this configuration.
After this, delete your current debug settings and redebug it.
Pycharm 2018.3.x
(still works in 2020.x)
I'd like to add to this conversation that these fixes does not seem to work in the case a single test function is launched in PyCharm (rather than the whole test file).
I yet haven't found a solution online to activate breakpoints when debugging a single test function instead of the whole file, and if someone has a solution, I would be interested. If I find it myself, I'll try to update this post.
For my situation, i found what the problem is:
If there is --cov
in pytest.ini
, then breakpoints in pycharm won't work, after deleting all --cov
in pytest.ini
, the breakpoints in pycharm can work.
Reason:
"The coverage module and pycharm's debugger use the same tracing api (sys.settrace) - they don't work together. " -- https://github.com/pytest-dev/pytest-cov/issues/131
References:
How to debug py.test in PyCharm when coverage is enabled