Test & Code cover image

Test & Code

Debugging Python Test Failures with pytest

Sep 14, 2021
13:18

An overview of the pytest flags that help with debugging.
 From Chapter 13, Debugging Test Failures, of Python Testing with pytest, 2nd edition.

pytest includes quite a few command-line flags that are useful for debugging. 

We talk about thes flags in this episode.

Flags for selecting which tests to run, in which order, and when to stop:

  • -lf / --last-failed: Runs just the tests that failed last.
  • -ff / --failed-failed: Runs all the tests, starting with the last failed.
  • -x / --exitfirst: Stops the tests session afterEd: after?Author: yep the first failure.
  • --maxfail=num: Stops the tests after num failures.
  • -nf / --new-first: Runs all the tests, ordered by file modification time.
  • --sw / --stepwise: Stops the tests at the first failure. Starts the tests at the last failure next time.
  • --sw-skip / --stepwise-skip: Same as --sw, but skips the first failure.

Flags to control pytest output:

  • -v / --verbose Displays all the test names, passing or failing.
  • --tb=[auto/long/short/line/native/no] Controls the traceback style.
  • -l / --showlocals Displays local variables alongside the stacktrace.

Flags to start a command-line debugger:

  • --pdb Starts an interactive debugging session at the point of failure.
  • --trace Starts the pdb source-code debugger immediately when running each test.
  • --pdbcls Uses alternatives to pdb, such as IPython’s debugger with –-pdbcls=IPython.terminal.debugger:TerminalPdb.

This list is also found in Chapter 13 of Python Testing with pytest, 2nd edition.
The chapter is "Debugging Test Failures" and covers way more than just debug flags, while walking through debugging 2 test failures.

Full Transcript


Links:

Get the Snipd
podcast app

Unlock the knowledge in podcasts with the podcast player of the future.
App store bannerPlay store banner

AI-powered
podcast player

Listen to all your favourite podcasts with AI-powered features

Discover
highlights

Listen to the best highlights from the podcasts you love and dive into the full episode

Save any
moment

Hear something you like? Tap your headphones to save it with AI-generated key takeaways

Share
& Export

Send highlights to Twitter, WhatsApp or export them to Notion, Readwise & more

AI-powered
podcast player

Listen to all your favourite podcasts with AI-powered features

Discover
highlights

Listen to the best highlights from the podcasts you love and dive into the full episode