nose-devs

nose2: Extend Python unittest for Testing

nose2 extends Python’s unittest framework with test discovery and additional testing tools. It suits teams that want to keep unittest-style tests while adding features such as parameterized tests and clearer assertion output.

Stars
828
Forks
139
Stars, last 30 days
+2
Last commit
29 days ago
Contributors
69

Our take

Maintaineda few commits in the last 90 days

Health score

44/100

How it is scored
Activity
31
Community
79
Issues
21
Pull requests
43

+2 stars in the last 30 days

nose2 is a focused extension for teams committed to unittest, with recent maintenance activity but no release in the past year and no recent issue closures reported.

Good fit if

  • Your tests use Python’s unittest conventions and you want nose2’s discovery and added tools.
  • You need parameterized test functions or the documented pretty-assert output.
  • You can work with a Python 3-only project requiring Python 3.9 or later.

Look elsewhere if

  • You need full compatibility with nose, which nose2 explicitly does not provide.
  • You are choosing a framework for a new project and prefer the larger team and community that the project itself attributes to pytest.
  • You require a recent release or evidence of recent issue closure before adopting a test tool.
All health signals
Last commit2026-09-28 (29 days ago)
Commits, last 90 days3
Releases, last 12 months0
Contributors69 (top contributor: 31% of commits)
Issues closed, last 90 days0
Pull requests merged, last 90 days1
Project age14 years

Checked on 2026-10-28 with the GitHub API.

Project history

Daily GitHub snapshots since Oct 7, 2026. History covers stars and forks; health signals are not tracked historically.

Selected snapshot

Stars

829

Forks

140

Change since Nov 9, 2026: 0 stars·0 forks

Overview

nose2 is a Python test runner and framework built on the standard library’s unittest. It adds testing tools and configuration around unittest-style tests, helping Python developers discover and run tests without leaving that familiar foundation.

The project began as the successor to nose, but it is distinct and does not support every nose behavior. Its maintainers recommend considering pytest for new projects, particularly given pytest’s larger team and community.

Key Features

  • Discovers tests in Python files whose names start with test.
  • Runs tests written in the standard unittest.TestCase style.
  • Supports test functions and parameterized cases through nose2.tools.params.
  • Offers a --pretty-assert option that provides expanded assertion output.
  • Adds testing configuration and tools on top of Python’s unittest framework.
  • Provides documentation covering differences from nose, versions, and contributions.

Use Cases

  • A Python team with existing unittest.TestCase tests that wants a test runner with additional tools.
  • Developers who want to run conventionally named test files with automatic discovery.
  • A project that needs to express several input cases for one test function using params.
  • Teams maintaining nose-based tests that need to assess nose2’s documented differences before migrating.

What you need

Detected in the repository

  • Python >=3.9 (from pyproject.toml)
  • Automated checks on GitHub Actions

Getting Started

Install nose2 in your Python environment, then run it from the project directory:

nose2 -v

See the README and documentation for setup and configuration details.

License in Plain Words

No standard license was detected. Without a license, the default copyright rules apply: you may read the code, but not reuse it. Check the repository or ask the authors.

Considerations

  • nose2 requires Python 3.9 or later; Python 2 is unsupported, and its 0.12.x release line is considered end of life.
  • The README describes nose2 as distinct from nose, so migration may require adapting tests or workflows.
  • The project reports no releases in the last 12 months and no issues closed in the last 90 days. It has had a few recent commits and a merged pull request, and its contributors are not concentrated around one person.
  • GitHub reports the license as NOASSERTION. Confirm the applicable license terms from the repository before relying on it in a project with licensing requirements.

Found this useful?

Share it with someone who would like nose2.