python type_error ai_generated true

类型错误:ids 必须是列表或可调用对象,得到字符串

TypeError: ids must be a list or callable, got <class 'str'>

ID: python/pytest-fixture-params-ids-type

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

版本兼容性

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

根因分析

在 parametrize 中传递 ids 参数时使用了字符串而不是列表或函数。

English

在 parametrize 中传递 ids 参数时使用了字符串而不是列表或函数。

generic

解决方案

  1. 98% 成功率 使用列表
    @pytest.mark.parametrize('x', [1,2], ids=['a','b'])
  2. 95% 成功率 使用可调用对象
    @pytest.mark.parametrize('x', [1,2], ids=lambda x: f'id_{x}')

无效尝试

常见但无效的做法:

  1. ids='a,b' 40% 失败

    尝试将字符串转换为列表但忘记括号

  2. ids=lambda x: 'id' 30% 失败

    尝试使用 lambda 但 lambda 返回字符串而非列表