Unable to debug in pycharm with pytest

后端 未结 5 631
天命终不由人
天命终不由人 2021-02-01 00:56

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

相关标签:
5条回答
  • 2021-02-01 01:15

    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.

    0 讨论(0)
  • 2021-02-01 01:29

    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.

    0 讨论(0)
  • 2021-02-01 01:31

    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)

    0 讨论(0)
  • 2021-02-01 01:37

    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.

    0 讨论(0)
  • 2021-02-01 01:41

    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

    0 讨论(0)
提交回复
热议问题