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

如何用Pytest找出执行特定代码行的测试用例?

找出覆盖特定代码行的pytest用例并单独运行

方法一:借助pytest-cov生成测试覆盖映射

  1. 安装依赖
pip install pytest-cov
  1. 生成包含测试用例与代码行映射的覆盖报告
    运行测试时指定生成JSON格式报告,并开启测试上下文记录:
pytest --cov=你的模块名 --cov-report=json:coverage.json --cov-context=test
  1. 解析JSON报告定位测试用例
    编写简单脚本解析coverage.json,找到目标代码行对应的测试用例。比如目标文件是src/foo.py,行号为50,示例脚本如下:
import json

with open("coverage.json", "r") as f:
    cov_data = json.load(f)

target_file = "src/foo.py"
target_line = 50

# 遍历文件找到目标
if target_file in cov_data["files"]:
    lines_info = cov_data["files"][target_file]["lines"]
    # 找到目标行对应的测试上下文
    for line_num, contexts in lines_info.items():
        if int(line_num) == target_line:
            print("覆盖该行的测试用例:")
            for ctx in contexts:
                print(f"- {ctx}")
  1. 单独运行目标测试用例
    拿到测试用例名称后,直接运行:
pytest 测试文件路径::测试类名::测试函数名

方法二:临时插桩快速定位(适合小项目)

在目标代码行添加一行打印语句:

# 目标代码行所在位置
print("DEBUG: 触发了目标行,当前测试用例:", __name__)

然后运行所有测试,查看控制台输出,找到打印该信息的测试用例名称,之后单独运行该测试即可。

注意:测试完成后记得移除插桩代码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 12:53:14