Text User Interface for running python tests. Still in beta version


  • install using pip pip install pytest-ui
  • provides the cli command pytui


$ pytui --help
Usage: pytui [OPTIONS] [PATH]

  --debug / --no-debug  Enable debug logging  [default: False]
  --help                Show this message and exit.

keyboard controls

  • r, F5 - run tests (last failed or first run, using filter)
  • R, Ctrl + F5 - run all tests (using filter)
  • s - run single test under cursor
  • / - focus filter input
  • Ctrl + f - clear filter input and focus it
  • F4 - toggle show only failed tests
  • Alt + Up/Down - navigate between failed tests (skipping passed)
  • q - close window, quit (in main window)

filter input

By default, filter input is in fuzzy mode. This could be avoided by using dash signs, where exact match mode is used between a pair of them. For example

abc#match#def will match fuzzy "abc", then exactly "match" and then again fuzzy "def"

main goals

The goal of this project is to ease the testing process by

  • selecting tests to run using fuzzy filter
  • viewing failed tests stacktrace/output/log while the test suite is still running
  • rerunning failed tests
  • running a test with debugger
  • usage as pytest plugin (for custom pytest scripts)