
unittest
unittest is Python’s unit testing framework for automating tests and organizing their setup and execution.
What unittest is
unittest is Python’s unit testing framework for automating tests and organizing their setup and execution. It provides fixtures, TestCase classes, TestSuite collections, and test runners, so you can structure tests and run them independently of the reporting framework. TestCase includes assertions such as assertEqual, assertTrue, assertFalse, and assertRaises. You can start tests from the command line by module, class, method, or file path; running without arguments starts discovery. Discovery can be configured with a start directory, filename pattern, and project top-level directory. Tests and classes can be skipped, tests can be marked as expected failures, and subTest can identify individual iterations and report parameters when one fails. The documentation also points to unittest.mock for using mock objects. unittest supports Python on Linux, macOS, and Windows, and is free to use and distribute, including commercially. One discovery constraint: test files must be importable modules or packages from the project top-level directory.
Good
- Includes fixtures, TestCase, TestSuite, and test runners
- Run tests by module, class, method, or file path
- Supports discovery, skips, expected failures, and subtests
- Free to use and distribute, including commercially
Watch out
- Discovery requires importable modules or packages
- Supports Python only
Who it suits
It suits Python developers who want built-in tools for organizing, running, and discovering unit tests. It is also useful for projects that need fixtures, assertions, skips, expected failures, or subtests.
Verdict
unittest provides Python projects with test organization, execution, and discovery tools in a free framework. Check the importability requirement if you plan to rely on test discovery.
Plans and prices
From unittest's own pricing page, checked 9 Oct 2026.
| Plan | Price | What it gives you |
|---|---|---|
| Free | Free | Python standard library unit testing framework · no separate unittest price stated · Free to use and distribute, including for commercial use |
The facts
Each one read from unittest's own pages, with the date it was checked.
What it does
- Assertions
- TestCase includes assertion methods such as assertEqual, assertTrue, assertFalse, and assertRaises to record test outcomes.checked 9 Oct 2026
- Command line
- Tests can be run from the command line by module, class, method, or file path, and running without arguments starts test discovery.checked 9 Oct 2026
- Compatibility limitation
- Test discovery requires test files to be importable modules or packages from the project top-level directory.checked 9 Oct 2026
- Integrations
- The documentation recommends driving production tests with continuous integration systems such as Buildbot, Jenkins, GitHub Actions, or AppVeyor.checked 9 Oct 2026
- Maintainer organization
- The Python Software Foundation says it supports and maintains Python documentation, python.org, PyPI, and other services used by the Python community.checked 9 Oct 2026
- Mock support
- The documentation points to unittest.mock as a library for replacing parts of a system under test with mock objects and making assertions about their use.checked 9 Oct 2026
- Purpose
- unittest is a unit testing framework that supports test automation, setup and cleanup sharing, test collection, and independence from the reporting framework.checked 9 Oct 2026
- Security and license
- Python is developed under an OSI-approved open source license and is freely usable and distributable, including commercially.checked 9 Oct 2026
- Skipping and expected failures
- Tests and classes can be skipped conditionally or unconditionally, and tests can be marked as expected failures.checked 9 Oct 2026
- Subtests
- The subTest context manager distinguishes iterations within a test method and reports parameters when a subtest fails.checked 9 Oct 2026
- Test building blocks
- It provides fixtures, TestCase, TestSuite, and test runners for organizing and executing tests.checked 9 Oct 2026
- Test discovery
- The framework supports discovery from a project directory and provides options to set the start directory, filename pattern, and project top-level directory.checked 9 Oct 2026
Where it runs
- Platforms
- Python.org lists downloads or platform pages for Windows, macOS, Android, iOS, and other platforms.checked 9 Oct 2026
Alternatives to unittest
- 1

Scalar
Free planOpen sourceWebAPILinuxmacOS8.4From $150 a month - 2

Redocly
WebAPIExtension7.0From $10 a month - 3

Sphinx
Free planWebAPILinuxmacOS7.0Free plan - 4

Asciidoctor
Free planWebAPIExtensionLinux6.9Free plan - 5
JSON Schema for Humans
Free planLinuxmacOSSelf-hostedWindows6.5Free plan - 6
StepShot
Free planmacOS6.5CN¥269 one-time
