python data_error ai_generated true

Failed: [pytest] empty parameter set in 'test_parse' at tests/test_parse.py:12

ID: python/pytest-parametrize-empty-list

Also available as: JSON · Markdown · 中文
80%Fix Rate
88%Confidence
0Evidence
2024-07-19First Seen

Version Compatibility

VersionStatusIntroducedDeprecatedNotes
7.x active
8.x active

Root Cause

pytest.mark.parametrize received an empty list for argvalues, so pytest reports an empty parameter set and fails the test by default (controlled by empty_parameter_set_mark).

generic

中文

pytest.mark.parametrize 收到空列表作为 argvalues,pytest 报告空参数集并默认使测试失败(由 empty_parameter_set_mark 控制)。

Workarounds

  1. 90% success
    # pytest.ini
    [pytest]
    empty_parameter_set_mark = skip
  2. 88% success
    CASES = load_cases() or [pytest.param(None, marks=pytest.mark.skip('no cases'))]
    
    @pytest.mark.parametrize('case', CASES)
    def test_parse(case): ...

Dead Ends

Common approaches that don't work:

  1. 70% fail

    Loses parameterization entirely; the test now runs once with undefined arguments and fails differently.

  2. 65% fail

    Hides the fact that the data source is empty, which is often the actual bug worth surfacing.