pytest vs Robot Framework: open-source unit testing and test runners tools compared
Metrics as of , from the GitHub or GitLab API of each repository. Refreshed monthly.
Summary
pytest: Python testing framework with plain assert introspection, test auto-discovery, fixtures and a plugin architecture.
Robot Framework: Python automation framework with a plain text, keyword-based syntax for acceptance testing, ATDD and RPA.
Both are listed under Unit testing and test runners. The table gives repository metrics from the GitHub API with their fetch date, then the documented facts used for every comparison in this category, each linked to the README or docs page it comes from. A cell reads "not documented" when the fact was not found in the project's documentation; that does not mean the feature is absent.
Side by side
| Fact | pytest | Robot Framework |
|---|---|---|
| Stars | 14,5211 | 11,9061 |
| Forks | 3,4001 | 2,5661 |
| Contributors | 1,1681 | 2371 |
| Last release | 2026-06-191 | 2026-09-141 |
| Last commit | 2026-09-211 | 2026-09-211 |
| Commits in 90 days | 3001 | 2021 |
| License | MIT1 | Apache-2.01 |
| Primary language | Python1 | Python1 |
| Status | active1 | active1 |
| Languages for writing tests | Python (3.10+ or PyPy3) source: README | Robot Framework plain text syntax; Python as the primary language for extending it source: README |
| Test authoring format | Code (Python test_ functions and Test classes with plain assert) source: Docs: Get Started | Plain text keyword-driven test and task files (.robot), extended with libraries source: README |
| Parallel or distributed execution | pytest-xdist plugin distributes tests to CPUs and remote hosts source: Docs: How to install and use plugins | External tools, developed as separate projects, for parallel execution source: Docs: Robot Framework User Guide |
| CI integration | Detects CI through the CI and BUILD_NUMBER (Jenkins) environment variables source: Docs: CI Pipelines | xUnit compatible output for CI servers such as Jenkins; Jenkins Robot Framework plugin source: Docs: Robot Framework User Guide |
| Report formats | Terminal output; JUnit XML (--junit-xml=path) source: Docs: Managing pytest's output | HTML log and report, XML and JSON output files, xUnit compatible XML source: Docs: Robot Framework User Guide |
| Install method | pip (pip install -U pytest) source: Docs: Get Started | pip (pip install robotframework) source: README |
1 Fetched from the GitHub or GitLab API on . Hover a value for its own date.
When each fits
Written from each project's documented scope, not from preference. Neither tool is ranked.
pytest
Fits projects that test Python applications and libraries, from small tests to functional testing; its README describes plain assert statements with detailed assertion introspection. source: README
Robot Framework
Fits projects that automate acceptance testing, acceptance test driven development or robotic process automation; its README describes a plain text syntax extended with generic and custom libraries. source: README
More on these tools
Sources
- GitHub REST API: repository, read
- GitHub REST API: repository, read
- GitHub REST API: contributors, read
- GitHub REST API: contributors, read
- GitHub REST API: latest release, read
- GitHub REST API: latest release, read
- GitHub REST API: commits, read
- GitHub REST API: commits, read
- README, read
- README, read
- Docs: Get Started, read
- Docs: How to install and use plugins, read
- Docs: Robot Framework User Guide, read
- Docs: CI Pipelines, read
- Docs: Managing pytest's output, read
Documented facts collected 2026-09-22. See the methodology for how metrics and facts are gathered.