freshcrate
Skin:/
Home > Frameworks > parameterized

parameterized

Parameterized testing with any Python test framework

Why this rank:Strong adoptionRelease freshnessHealthy release cadence

Description

Parameterized testing with any Python test framework ==================================================== .. image:: https://img.shields.io/pypi/v/parameterized :alt: PyPI :target: https://pypi.org/project/parameterized/ .. image:: https://img.shields.io/pypi/dm/parameterized :alt: PyPI - Downloads :target: https://pypi.org/project/parameterized/ .. image:: https://circleci.com/gh/wolever/parameterized.svg?style=svg :alt: Circle CI :target: https://circleci.com/gh/wolever/parameterized Parameterized testing in Python sucks. ``parameterized`` fixes that. For everything. Parameterized testing for nose, parameterized testing for py.test, parameterized testing for unittest. .. code:: python # test_math.py from nose.tools import assert_equal from parameterized import parameterized, parameterized_class import unittest import math @parameterized([ (2, 2, 4), (2, 3, 8), (1, 9, 1), (0, 9, 0), ]) def test_pow(base, exponent, expected): assert_equal(math.pow(base, exponent), expected) class TestMathUnitTest(unittest.TestCase): @parameterized.expand([ ("negative", -1.5, -2.0), ("integer", 1, 1.0), ("large fraction", 1.6, 1), ]) def test_floor(self, name, input, expected): assert_equal(math.floor(input), expected) @parameterized_class(('a', 'b', 'expected_sum', 'expected_product'), [ (1, 2, 3, 2), (5, 5, 10, 25), ]) class TestMathClass(unittest.TestCase): def test_add(self): assert_equal(self.a + self.b, self.expected_sum) def test_multiply(self): assert_equal(self.a * self.b, self.expected_product) @parameterized_class([ { "a": 3, "expected": 2 }, { "b": 5, "expected": -4 }, ]) class TestMathClassDict(unittest.TestCase): a = 1 b = 1 def test_subtract(self): assert_equal(self.a - self.b, self.expected) With nose (and nose2):: $ nosetests -v test_math.py test_floor_0_negative (test_math.TestMathUnitTest) ... ok test_floor_1_integer (test_math.TestMathUnitTest) ... ok test_floor_2_large_fraction (test_math.TestMathUnitTest) ... ok test_math.test_pow(2, 2, 4, {}) ... ok test_math.test_pow(2, 3, 8, {}) ... ok test_math.test_pow(1, 9, 1, {}) ... ok test_math.test_pow(0, 9, 0, {}) ... ok test_add (test_math.TestMathClass_0) ... ok test_multiply (test_math.TestMathClass_0) ... ok test_add (test_math.TestMathClass_1) ... ok test_multiply (test_math.TestMathClass_1) ... ok test_subtract (test_math.TestMathClassDict_0) ... ok ---------------------------------------------------------------------- Ran 12 tests in 0.015s OK As the package name suggests, nose is best supported and will be used for all further examples. With py.test (version 2.0 and above):: $ py.test -v test_math.py ============================= test session starts ============================== platform darwin -- Python 3.6.1, pytest-3.1.3, py-1.4.34, pluggy-0.4.0 collecting ... collected 13 items test_math.py::test_pow::[0] PASSED test_math.py::test_pow::[1] PASSED test_math.py::test_pow::[2] PASSED test_math.py::test_pow::[3] PASSED test_math.py::TestMathUnitTest::test_floor_0_negative PASSED test_math.py::TestMathUnitTest::test_floor_1_integer PASSED test_math.py::TestMathUnitTest::test_floor_2_large_fraction PASSED test_math.py::TestMathClass_0::test_add PASSED test_math.py::TestMathClass_0::test_multiply PASSED test_math.py::TestMathClass_1::test_add PASSED test_math.py::TestMathClass_1::test_multiply PASSED test_math.py::TestMathClassDict_0::test_subtract PASSED ==================== 12 passed, 4 warnings in 0.16 seconds ===================== With unittest (and unittest2):: $ python -m unittest -v test_math test_floor_0_negative (test_math.TestMathUnitTest) ... ok test_floor_1_integer (test_math.TestMathUnitTest) ... ok test_floor_2_large_fraction (test_math.TestMathUnitTest) ... ok test_add (test_math.TestMathClass_0) ... ok test_multiply (test_math.TestMathClass_0) ... ok test_add (test_math.TestMathClass_1) ... ok test_multiply (test_math.TestMathClass_1) ... ok test_subtract (test_math.TestMathClassDict_0) ... ok ---------------------------------------------------------------------- Ran 8 tests in 0.001s OK (note: because unittest does not support test decorators, only tests created with ``@parameterized.expand`` will be executed) With green:: $ green test_math.py -vvv test_math TestMathClass_1 . test_method_a . test_method_b TestMathClass_2 . test_method_a . test_method_b TestMathClass_3 . test_method_a . test_method_b TestMathUnitTest . test_floor_0_negative . test_floor_1_integer . test_floor_2_large_fraction TestMathC

Release History

VersionChangesUrgencyDate
0.9.0Imported from PyPI (0.9.0)Low4/21/2026
master@2024-08-18Latest activity on master branchLow8/18/2024
master@2024-08-18Latest activity on master branchLow8/18/2024
master@2024-08-18Latest activity on master branchLow8/18/2024
master@2024-08-18Latest activity on master branchLow8/18/2024
master@2024-08-18Latest activity on master branchLow8/18/2024
master@2024-08-18Latest activity on master branchLow8/18/2024
master@2024-08-18Latest activity on master branchLow8/18/2024
master@2024-08-18Latest activity on master branchLow8/18/2024
master@2024-08-18Latest activity on master branchLow8/18/2024
master@2024-08-18Latest activity on master branchLow8/18/2024
master@2024-08-18Latest activity on master branchLow8/18/2024
master@2024-08-18Latest activity on master branchLow8/18/2024
master@2024-08-18Latest activity on master branchLow8/18/2024
master@2024-08-18Latest activity on master branchLow8/18/2024
master@2024-08-18Latest activity on master branchLow8/18/2024
master@2024-08-18Latest activity on master branchLow8/18/2024
master@2024-08-18Latest activity on master branchLow8/18/2024
master@2024-08-18Latest activity on master branchLow8/18/2024
master@2024-08-18Latest activity on master branchLow8/18/2024
master@2024-08-18Latest activity on master branchLow8/18/2024
master@2024-08-18Latest activity on master branchLow8/18/2024
master@2024-08-18Latest activity on master branchLow8/18/2024
master@2024-08-18Latest activity on master branchLow8/18/2024
master@2024-08-18Latest activity on master branchLow8/18/2024
master@2024-08-18Latest activity on master branchLow8/18/2024
master@2024-08-18Latest activity on master branchLow8/18/2024
master@2024-08-18Latest activity on master branchLow8/18/2024
master@2024-08-18Latest activity on master branchLow8/18/2024
master@2024-08-18Latest activity on master branchLow8/18/2024
master@2024-08-18Latest activity on master branchLow8/18/2024
master@2024-08-18Latest activity on master branchLow8/18/2024
master@2024-08-18Latest activity on master branchLow8/18/2024
master@2024-08-18Latest activity on master branchLow8/18/2024
master@2024-08-18Latest activity on master branchLow8/18/2024
master@2024-08-18Latest activity on master branchLow8/18/2024
master@2024-08-18Latest activity on master branchLow8/18/2024
master@2024-08-18Latest activity on master branchLow8/18/2024
master@2024-08-18Latest activity on master branchLow8/18/2024
master@2024-08-18Latest activity on master branchLow8/18/2024
master@2024-08-18Latest activity on master branchLow8/18/2024
master@2024-08-18Latest activity on master branchLow8/18/2024
master@2024-08-18Latest activity on master branchLow8/18/2024
master@2024-08-18Latest activity on master branchLow8/18/2024
master@2024-08-18Latest activity on master branchLow8/18/2024
v0.9.0Tag v0.9.0Low3/27/2023
v0.8.1Tag v0.8.1Low1/9/2021
v0.8.0Tag v0.8.0Low1/4/2021
v0.7.5Tag v0.7.5Low1/4/2021
v0.7.4Tag v0.7.4Low4/14/2020
v0.7.3Tag v0.7.3Low4/12/2020
v0.7.1Tag v0.7.1Low11/19/2019
v0.3.5Tag v0.3.5Low11/6/2014
v0.3.4Tag v0.3.4Low10/3/2014

Dependencies & License Audit

Loading dependencies...

Similar Packages

tqdmFast, Extensible Progress Meterv4.68.1
inspect-aiFramework for large language model evaluationsmain@2026-06-05
hypothesisThe property-based testing library for Pythonv6.155.2
bleachAn easy safelist-based HTML-sanitizing tool.main@2026-06-05
jupyter-clientJupyter protocol implementation and client librariesv8.9.0

More from pypi

markitdownUtility tool for converting various files to Markdown
fastapiFastAPI framework, high performance, easy to learn, fast to code, ready for production
djangoA high-level Python web framework that encourages rapid development and clean, pragmatic design.
flaskA simple framework for building complex web applications.

More in Frameworks

langchainThe agent engineering platform
deer-flowAn open-source long-horizon SuperAgent harness that researches, codes, and creates. With the help of sandboxes, memories, tools, skill, subagents and message gateway, it handles different levels of ta
tqdmFast, Extensible Progress Meter
simBuild, deploy, and orchestrate AI agents. Sim is the central intelligence layer for your AI workforce.