python type_error ai_generated true

值错误:为 2 个参数 ('a', 'b') 提供了 3 个参数

ValueError: got 3 arguments for 2 parameters: ('a', 'b')

ID: python/pytest-mark-parametrize-argument-count

其他格式: JSON · Markdown 中文 · English
80%修复率
90%置信度
0证据数
2024-12-02首次发现

版本兼容性

版本状态引入弃用备注
7.4.0 active

根因分析

在 parametrize 中提供的参数数量与测试函数参数数量不匹配。

English

在 parametrize 中提供的参数数量与测试函数参数数量不匹配。

generic

解决方案

  1. 100% 成功率
    确保参数数量一致,如 `@pytest.mark.parametrize('a,b', [(1,2), (3,4)])`。
  2. 90% 成功率
    `@pytest.mark.parametrize('a,b', [{'a':1, 'b':2}])` 更清晰。

无效尝试

常见但无效的做法:

  1. 50% 失败

    可能破坏测试逻辑,且需要同步修改 parametrize。

  2. 100% 失败

    pytest 不会忽略,直接报错。