Keath Milligan

On software development, quality, security and broken racecars

Debugging pytest in VSCode (without adding files to your project)

Update July 29, 2017: updated to work on Windows and simplify configuration.

For debugging pytest executions, the official VSCode Python extension documentation recommends creating an additional file in your project, e.g.:

and setting up a launcher to start the debugger against it. While this is simple, I really don’t like having to modify my project’s code or add source files just to satisfy my editor/IDE.

So, to debug pytest without having to create an additional source file, setup a launcher configuration with the “program” option pointing to the “pytest” script itself, for instance:

In my case, I have a virtual environment setup in the root of the project (.virtualenv). Alter this path as appropriate for the location of your virtual environment.

Also, be sure to set “cwd” to the root of your project or where ever you would normally run pytest from so it will properly discover your tests.



  1. I had to change ${config.python.pythonPath} to ${config:python.pythonPath}

    I start debugging but nothing happens. Pytest runs and exits, almost as if it can’t find the tests. But I have lots of tests that run normally from the terminal.

  2. Thanks! Really helpful for me!

  3. Sorry, but what is: launcher configuration ?
    Ctrl + Alt + P menu does not find it.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

© 2019 Keath Milligan

Theme by Anders NorenUp ↑