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
80%修复率
90%置信度
0证据数
2025-07-01首次发现
版本兼容性
| 版本 | 状态 | 引入 | 弃用 | 备注 |
|---|---|---|---|---|
| 3.8 | active | — | — | — |
根因分析
在 parametrize 中传递 ids 参数时使用了字符串而不是列表或函数。
English
在 parametrize 中传递 ids 参数时使用了字符串而不是列表或函数。
解决方案
-
98% 成功率 使用列表
@pytest.mark.parametrize('x', [1,2], ids=['a','b']) -
95% 成功率 使用可调用对象
@pytest.mark.parametrize('x', [1,2], ids=lambda x: f'id_{x}')
无效尝试
常见但无效的做法:
-
ids='a,b'
40% 失败
尝试将字符串转换为列表但忘记括号
-
ids=lambda x: 'id'
30% 失败
尝试使用 lambda 但 lambda 返回字符串而非列表