Python Testing with pytest, Second Edition (PragProg)

Create efficient, elegant software tests in pytest, Python's most powerful testing framework.

Brian Okken @brianokken

Edited by Katharine Dvorak @katied

Test applications, packages, and libraries large and small with pytest, Python’s most powerful testing framework. pytest helps you write tests quickly and keep them readable and maintainable. In this fully revised edition, explore pytest’s superpowers—simple asserts, fixtures, parametrization, markers, and plugins—while creating simple tests and test suites against a small database application. Using a robust yet simple fixture model, it’s just as easy to write small tests with pytest as it is to scale up to complex functional testing. This book shows you how.

pytest is undeniably the best choice for testing Python projects. It’s a full-featured, flexible, and extensible testing framework. pytest’s fixture model allows you to share test data and setup procedures across multiple layers of tests. The pytest framework gives you powerful features such as assert rewriting, parametrization, markers, plugins, parallel test execution, and clear test failure reporting—with no boilerplate code.

With simple step-by-step instructions and sample code, this book gets you up to speed quickly on this easy-to-learn yet powerful tool. Write short, maintainable tests that elegantly express what you’re testing. Speed up test times by distributing tests across multiple processors and running tests in parallel. Use Python’s builtin assert statements instead of awkward assert helper functions to make your tests more readable. Move setup code out of tests and into fixtures to separate setup failures from test failures. Test error conditions and corner cases with expected exception testing, and use one test to run many test cases with parameterized testing. Extend pytest with plugins, connect it to continuous integration systems, and use it in tandem with tox, mock, coverage, and even existing unittest tests.

Write simple, maintainable tests quickly with pytest.

Brian Okken is the host of the Test & Code podcast, and co-host of the Python Bytes podcast. He’s also a lead software engineer.

Don’t forget you can get 35% off with your Devtalk discount! Just use the coupon code “" at checkout :+1:


Congrats Brian! I love the cover! :sunglasses:


Corresponding tweet for this thread:

Share link for this tweet.


I use pytest on daily basis. One of the few Python libraries that I actually like.


Awesome. More books on testing. :slight_smile:


Thank you