Freedom251 › Software Testing Tools
pytest

What pytest is
pytest is a free Python testing framework for writing small tests and scaling them to functional testing for applications and libraries. It discovers test modules and functions using standard naming conventions, and its assertion introspection gives detailed information about failing `assert` statements. Fixtures provide test resources, including unique temporary directories, and can be shared or parametrized. Test selection can be narrowed by module, directory, keyword, collection path or marker expression. pytest can run `unittest` test suites, including trial, and supports external plugins; its project home reports more than 1300. It can also be invoked from Python code, and the documentation describes external plugins such as pytest-cov. The project lists Python 3.10+ or PyPy 3 as supported runtimes; pytest 9.0+ requires Python 3.10+. The documented installation command is `pip install -U pytest`. The project directs users to GitHub issues for bugs and feature requests, while suspected security vulnerabilities should be reported through a new GitHub security advisory. Commercial support and maintenance are offered through Tidelift Subscription.
Who it suits
pytest suits Python developers testing applications and libraries, from small tests to more complex functional suites. Organizations using open source dependencies can also consider the listed Tidelift support offer.
What it does well
- Automatically discovers tests by naming convention.
- Fixtures can provide unique temporary directories.
- Runs unittest suites, including trial.
- Supports external plugins and parametrized cases.
- Free and open source.
What to know first
- pytest 9.0+ requires Python 3.10+.
- The listed platform is Linux.
Plans
| Plan | Billed and limits | Price |
|---|---|---|
| pytest | Open source Python testing framework | Free |
As pytest.org lists them, read 29 Sept 2026. The maker's own page has the final word.
Getting started
- Open the pytest website
- Use a Linux environment
- Install Python 3.10+ or PyPy 3
- Install pytest with pip install -U pytest
- Write tests using the standard discovery naming conventions
- Select tests by module, directory, keyword, collection path, or marker expression
Verdict
pytest offers test discovery, fixtures, detailed assertion feedback and broad test selection for Python projects. Check the runtime requirements for your chosen version and whether its available features cover your testing needs.
Questions
What does pytest cost?
The pytest plan is free, with a free plan.
Which runtimes does pytest support?
The project lists Python 3.10+ or PyPy 3; pytest 9.0+ requires Python 3.10+.
How do I install pytest?
The getting-started guide uses pip install -U pytest.
Can pytest run unittest tests?
Yes. pytest runs unittest test suites, including trial, out of the box.
Does pytest support plugins?
Yes. Its plugin architecture supports external plugins, and the project home reports more than 1300.
Where are bugs and security issues reported?
Bugs and feature requests go to GitHub issues. Suspected security vulnerabilities should be reported through a new GitHub security advisory.
Facts from pytest's own pages
- Assertions
- pytest provides detailed information about failing assert statements through assertion introspection. · docs.pytest.org, 29 Sept 2026
- Compatibility
- pytest can run unittest test suites, including trial, out of the box. · docs.pytest.org, 29 Sept 2026
- Enterprise services
- The Tidelift subscription description lists security updates, licensing verification and indemnification, maintenance, version guidance, roadmap input, and tooling and cloud integration. · docs.pytest.org, 29 Sept 2026
- Fixtures
- Fixtures provide resources to tests, including unique temporary directories, and can be shared or parametrized. · docs.pytest.org, 29 Sept 2026
- Founded
- 2004 · pytest.org, 23 Sept 2026
- Install
- The getting-started guide installs pytest with the command pip install -U pytest. · docs.pytest.org, 29 Sept 2026
- Integrations
- The documentation describes loading external plugins, including pytest-cov, and pytest can be invoked from Python code. · docs.pytest.org, 29 Sept 2026
- Intended users
- pytest is described for testing applications and libraries, and its enterprise support offer is aimed at organizations using open source dependencies to build applications. · docs.pytest.org, 29 Sept 2026
- Plugins
- pytest has a plugin architecture and the project home reports more than 1300 external plugins. · docs.pytest.org, 29 Sept 2026
- Purpose
- pytest is a framework for writing small, readable tests that can scale to complex functional testing for applications and libraries. · docs.pytest.org, 29 Sept 2026
- Security
- The project asks users to report suspected security vulnerabilities through a new GitHub security advisory instead of creating an issue. · docs.pytest.org, 29 Sept 2026
- Support
- The project directs users to GitHub issues for bugs and feature requests and offers commercial support and maintenance through Tidelift Subscription. · docs.pytest.org, 29 Sept 2026
- Supported runtimes
- The project home lists Python 3.10+ or PyPy 3; the version support page says pytest 9.0+ requires Python 3.10+. · docs.pytest.org, 29 Sept 2026
- Test discovery
- pytest automatically discovers test modules and functions using standard naming conventions. · docs.pytest.org, 29 Sept 2026
- Test selection
- The command line can select tests by module, directory, keyword, collection path, or marker expression. · docs.pytest.org, 29 Sept 2026
Where pytest stands on Freedom251
- Software Testing Tools#21 of 33
- Unit Testing#22 of 32
- Unit Testing Frameworks#29 of 32