Parametrizing Tests
Learn about pytest parametrization and the different types of parametrization techniques with interactive code examples.
We'll cover the following
- Introduction to parametrization
- Basic test parametrization
- Parametrized fixtures
- Parametrization of external data sources
- Indirect parametrization
- Parametrizing conditional raising
- Parametrizing with pytest.param
- Parametrizing with pytest_generate_tests
- Parametrizing Python classes
- Conclusion
- Test your learning!
Introduction to parametrization
Test parametrization is a feature in pytest that allows us to write a single test function and test it with multiple input values. It is a way of writing concise tests that can cover many cases with minimal code. This feature is especially useful when we want to test a function with varying input parameters.
The main benefit of this is concise code. Instead of writing many separate test functions with the same code, we can write a single test function with parameters, which makes the test code more concise and easier to manage. Testing code with a variety of inputs can increase the coverage of the tests and help us find bugs more easily. This also makes test code easier to maintain in the future.
In the following sections, we will explore how to use test parametrization in pytest.
Basic test parametrization
To use test parametrization in pytest, we can use the @pytest.mark.parametrize
decorator. This decorator takes the name of the parameterized argument(s) as a string or list, followed by the list of values to use for each parameter.
Get hands-on with 1400+ tech skills courses.