{"id":5668,"library":"nose","title":"Nose Testing Framework","description":"Nose extends unittest to make testing easier, providing a simpler test discovery and running mechanism. Its last major release was 1.3.7 in 2015, and the project is no longer actively maintained. Users are strongly encouraged to migrate to modern alternatives like pytest.","status":"abandoned","version":"1.3.7","language":"en","source_language":"en","source_url":"https://github.com/nose-devs/nose","tags":["testing","unittest","legacy","python2"],"install":[{"cmd":"pip install nose","lang":"bash","label":"Install Nose"}],"dependencies":[],"imports":[{"symbol":"run","correct":"import nose\nnose.run()"},{"symbol":"TestCase","correct":"from unittest import TestCase"}],"quickstart":{"code":"import nose\nfrom unittest import TestCase\n\nclass MyTest(TestCase):\n    def test_something(self):\n        self.assertEqual(1, 1)\n\nif __name__ == '__main__':\n    # To run this directly without the `nosetests` command:\n    # nose.run()\n    # For programmatic execution, typically you'd run from command line.\n    print(\"Run with: nosetests\")\n    # Example of what `nosetests` would do if run programmatically:\n    # nose.run(argv=['', '--verbose', __file__])","lang":"python","description":"This example demonstrates a basic Nose test case using unittest.TestCase. Nose discovers tests by default from files named `test_*.py` or classes/functions starting with `test_`. The common way to run tests is via the `nosetests` command line tool."},"warnings":[{"fix":"Migrate to a maintained testing framework like pytest or unittest (built-in). If forced to use Nose, ensure a Python 2.7 environment or use a specific `nose` fork with Python 3 support (e.g., `nose2`).","message":"Nose 1.3.7, the last released version, was developed primarily for Python 2. While it might partially function in some Python 3 environments, it is not officially supported and will likely encounter errors or unexpected behavior with modern Python 3 versions (3.6+).","severity":"breaking","affected_versions":"<=1.3.7"},{"fix":"Migrate testing suites to modern, actively maintained frameworks such as pytest or the built-in unittest module. These offer superior features, community support, and Python 3 compatibility.","message":"The `nose` project is officially unmaintained and abandoned. Its GitHub repository prominently displays a warning encouraging users to switch to `pytest`. Expect no further updates, bug fixes, or security patches.","severity":"deprecated","affected_versions":"All versions"},{"fix":"Carefully review Nose's test discovery rules in its documentation. When migrating to other frameworks, understand their specific discovery rules, which might differ.","message":"Nose's test discovery mechanism (looking for `test_` prefixes in filenames, classes, and methods) can sometimes lead to unintended test execution or missed tests if not consistently applied. It also had specific rules for how it interacted with `__init__.py` files.","severity":"gotcha","affected_versions":"All versions"}],"env_vars":null,"last_verified":"2026-04-09T00:00:00.000Z","next_check":"2026-07-08T00:00:00.000Z"}