nose2
unittest with plugins
Decision gist · record as of 2026-08-14
Yes, if you are already using unittest and want a low-friction upgrade with plugins and better output. The package has no dependencies, is actively maintained, and supports current Python versions. However, if starting a new project, pytest is a stronger choice given its larger community and maintainer base—nose2 is best for incremental improvement of existing unittest codebases.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.9 or later; Python 2 is no longer supported.
- Low install friction with no runtime dependencies.
- Actively maintained with recent commits and a release within the last 6 months; supports current Python versions from 3.9 onward.
License · maintenance · safety
BSD-2-Clause (permissive) — BSD-2-Clause is permissive, allowing commercial and private use with minimal restrictions—suitable for most projects.
last release 2026-03-02 (165 days) · last repo commit 2026-08-10 · 826 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 797,172 downloads/mo, #5,031 on PyPI
Alternatives
Verify before relying
pip install nose2
# in test_example.py
import unittest
class TestExample(unittest.TestCase):
def test_pass(self):
self.assertEqual(1, 1)
# Run tests:
# nose2 -v- Whether nose2's plugin ecosystem is actively maintained and what plugins are available beyond the core distribution.
- Performance characteristics compared to unittest or pytest for large test suites.
What it is and what it does
nose2 is a test runner built on top of Python's standard unittest framework, designed to make writing and running tests more convenient. It automatically discovers test files and functions, runs them, and provides enhanced output formatting and assertion introspection. The package adds value through plugins and tools like parametrized test decorators that reduce boilerplate compared to raw unittest.
Unlike its predecessor nose, nose2 is a distinct project that does not aim for full backward compatibility. It requires Python 3.9 or later and is actively maintained. The project acknowledges that pytest is a larger, more mature alternative with a bigger community, but nose2 remains useful for teams already invested in unittest-style tests who want incremental improvements without a full framework migration.
Use it for
- Run unittest-style tests across a project with automatic discovery and minimal configuration.
- Add parametrized test support to unittest code using nose2's @params decorator.
- Generate detailed assertion failure output with --pretty-assert for easier debugging.
- Integrate testing into CI/CD pipelines where unittest compatibility is required.
- Migrate from nose to a maintained test runner without rewriting all tests.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you are already using unittest and want a low-friction upgrade with plugins and better output.
The package has no dependencies, is actively maintained, and supports current Python versions. However, if starting a new project, pytest is a stronger choice given its larger community and maintainer base—nose2 is best for incremental improvement of existing unittest codebases.
Install
nose2 on PyPI
Before you install
Low install friction with no runtime dependencies. Actively maintained with recent commits and a release within the last 6 months; supports current Python versions from 3.9 onward.
Requires Python 3.9 or later; Python 2 is no longer supported.
License in practice
BSD-2-Clause is permissive, allowing commercial and private use with minimal restrictions—suitable for most projects.
Quickstart
pip install nose2
# in test_example.py
import unittest
class TestExample(unittest.TestCase):
def test_pass(self):
self.assertEqual(1, 1)
# Run tests:
# nose2 -v
Verify before relying
- Whether nose2's plugin ecosystem is actively maintained and what plugins are available beyond the core distribution.
- Performance characteristics compared to unittest or pytest for large test suites.
Package facts
| License | BSD-2-Clause permissive |
| Python support | Supports the current Python release >=3.9 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | None |
| Maintenance | Actively maintained 165 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 797,172 / month, #5,031 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 4 - BetaEnvironment :: ConsoleIntended Audience :: DevelopersLicense :: OSI Approved :: BSD LicenseOperating System :: OS IndependentProgramming Language :: PythonProgramming Language :: Python :: 3 :: OnlyProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Programming Language :: Python :: 3.9Programming Language :: Python :: Implementation :: CPythonTopic :: Software Development :: LibrariesTopic :: Software Development :: Libraries :: Python ModulesTopic :: Software Development :: Testing |
Evidence: nose2-0.16.0-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “unittest test runner”
- nose2nose2 is a test runner that extends Python's unittest framework with…
- unittest-xml-reportingA unittest test runner that exports test results to XML files in…
- html-testRunnerA unittest test runner that generates human-readable HTML reports of…
Give your agent the search over MCP, or paste the wish link into any chat.
More Libraries packages
urllib3 is an HTTP client library that provides thread-safe connection pooling, SSL/TLS verification, multipart file uploads, request retries, compression support, and proxy handling for Python applications.
Requests is a Python HTTP library that simplifies sending HTTP/1.1 requests with automatic handling of headers, authentication, cookies, and response parsing.
Pluggy provides a plugin system that lets you define hook specifications and register implementations to be called in sequence, enabling extensible Python applications without tight coupling.
Install it if you're building an extensible application or framework.
Provides parsing, arithmetic, and recurrence rule computation for dates and times, with timezone support and iCalendar RFC compliance.
Install it if you need to parse flexible date strings, compute relative dates, handle timezones, or work with recurrence rules—it's the de facto choice for these tasks.
Six provides utility functions to write Python code that runs on both Python 2.7 and Python 3.3+, smoothing over language differences between the two versions.
pytest is a testing framework that lets you write test functions using plain assert statements and automatically discovers and runs them, with detailed failure reporting.
See also nose · nose-py3 · pynose · html-testRunner · parameterized · unittest2 · unittest-parametrize · pytest-subtests · parametrize · django-nose