15 amazing pytest plugins - Michael Kennedy
Episode 116 · June 7th, 2020 · 51 mins 27 secs
About this Episode
pytest plugins are an amazing way to supercharge your test suites, leveraging great solutions from people solving test problems all over the world. In this episode Michael and I discuss 15 favorite plugins that you should know about.
We also discuss fixtures and plugins and other testing tools that work great with pytest
- GitHub Actions
- Selenium + splinter with pytest-splinter
And then our list of pytest plugins:
That last one isn't a plugin, but we also talked about pytest-splinter at the beginning. So I think it still counts as 15.
- pytest-sugar — changes the default look and feel of pyptest (e.g. progressbar, show tests that fail instantly)
- pytest-cov — run coverage.py from pytest
- pytest-stress — allows you to loop tests for a user defined amount of time.
- pytest-repeat — for repeating test execution
- pytest-instafail — shows failures and errors instantly instead of waiting until the end of test session.
- pytest-metadata — for accessing test session metadata
- pytest-randomly — randomly order tests and control random.seed
- pytest-xdist — distributed testing
- pytest-flake8 — pytest plugin to run flake8
- pytest-timeout — terminate tests after a certain timeout
- pytest-spec — display test execution output like a specification
- pytest-picked — run the tests related to the changed files (according to Git)
- pytest-freezegun — easily freeze time
- pytest-check — allows multiple failures per test
- fluentcheck — fluent assertions
- episode 104 — Top 28 pytest plugins with Anthony Sottile
- Python Testing with pytest — The easiest way to get up to speed with pytest fast. There's also a chapter dedicated to plugins that also teaches you how to write and test your own plugins.
- GitHub Actions
- pytest-splinter — provides a set of fixtures to use splinter for browser testing
- splinter — makes it easy to write automated tests of web applications
- hypothesis — property-based testing
- Talk Python Episode #267 — This episode is a cross post with Talk Python