# SKIPPED [1] tests/test_math.py:12: got empty parameter set ['a', 'b'], function test_add

- **ID:** `python/pytest-parametrize-empty-argvalues`
- **Domain:** python
- **Category:** data_error
- **Verification:** ai_generated
- **Fix Rate:** 80%

## Root Cause

`@pytest.mark.parametrize` received an empty list of values, so the test is collected but skipped. Often the data source (fixture, file, computed list) returned nothing.

## Version Compatibility

| Version | Status | Introduced | Deprecated |
|---------|--------|------------|------------|
| 7.x | active | — | — |
| 8.x | active | — | — |

## Workarounds

1. **** (90% success)
   ```
   Fail fast when the data source is unexpectedly empty:
CASES = load_cases()
if not CASES:
    pytest.fail('no cases loaded from fixtures/cases.json')
@pytest.mark.parametrize('a,b', CASES)
   ```
2. **** (85% success)
   ```
   Or use `pytest_generate_tests` to raise a clear error:
def pytest_generate_tests(metafunc):
    if 'a' in metafunc.fixturenames:
        cases = load_cases()
        if not cases:
            pytest.fail('empty case set')
        metafunc.parametrize('a,b', cases)
   ```

## Dead Ends

- **** — Already skipped; adding skip does not surface the underlying empty-data problem, which is usually a bug. (80% fail)
- **** — Hides the real issue (data source empty) and reduces coverage silently. (75% fail)
