You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

pytest无法识别新测试用例仅执行旧用例问题求助

解决pytest不识别新测试用例、误执行旧测试的问题

核心问题排查

  1. 测试函数命名不符合pytest规则:你的新测试文件test_city_function.py里的函数名为check_pretty_formatted_city_country,pytest默认只会识别以test_开头的函数作为测试用例,这是它没被收集到的直接原因。
  2. pytest默认递归扫描所有子目录:即使把旧测试移到Storico文件夹,pytest会自动遍历当前rootdir下的所有子目录,只要文件名符合test_*.py就会被执行。
  3. 执行pytest时未指定目标路径:在新文件夹执行pytest时,rootdir还是上级目录/home/kko/Desktop/python_work,如果新文件夹里的测试文件没被正确扫描到,就会出现收集0个用例的情况。

具体解决步骤

1. 修改测试函数命名

把新测试文件里的函数名改成以test_开头,修改后的代码:

from city_function import pretty_city

def test_check_pretty_formatted_city_country():
    """验证字符串是否被正确格式化"""
    formatted_data = pretty_city('milano', 'italia')
    assert formatted_data == 'Milano, Italia'

2. 排除不需要扫描的目录(如Storico)

如果不想让pytest扫描旧测试所在的Storico文件夹,有两种方式:

  • 临时执行时排除:
    pytest --ignore=Storico
    
  • 永久配置:在项目根目录创建pytest.ini文件,添加以下内容:
    [pytest]
    addopts = --ignore=Storico
    

3. 精确指定测试文件/目录执行

如果只想执行新测试文件,直接指定路径:

# 执行单个测试文件
pytest test_city_function.py
# 执行新文件夹下的所有测试
pytest ./你的新文件夹名称/

4. 彻底清理缓存(补充步骤)

除了pytest --cache-clear,还可以手动删除缓存目录:

rm -rf .pytest_cache/

内容的提问来源于stack exchange,提问作者Kko_Viv

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 07:27:31