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

VSCode中Pytest测试发现失败但pytest --collect-only正常的问题求助

解决VSCode中Pytest测试发现错误及本地包导入问题

1. 修正VSCode的Pytest配置

你的settings.json里使用了未被VSCode识别的$MY-PACKAGE变量,且工作目录设置错误,导致测试发现逻辑和终端执行不一致。修改配置如下:

{
    "files.autoSave": "onFocusChange",
    "python.testing.pytestArgs": [
        "tests",
        "--no-cov"
    ],
    "python.testing.unittestEnabled": false,
    "python.testing.pytestEnabled": true,
    "python.testing.cwd": "${workspaceFolder}",
    "python.testing.autoTestDiscoverOnSaveEnabled": true
}
  • ${workspaceFolder}是VSCode内置变量,自动指向当前打开的项目根目录(即MY-PACKAGE文件夹),和你终端执行pytest的工作目录保持一致
  • 移除手动指定的--rootdir,pytest会自动从项目根目录识别测试结构

2. 解决本地包导入问题,避免使用pip线上版本

要让测试文件直接引用本地开发的包,而非pip安装的线上版本,有两种可靠方式:

方式一:以可编辑模式安装本地包

在项目根目录的终端执行:

pip install -e .

这会把本地包以"可编辑"模式安装到当前conda环境,后续修改本地代码无需重新安装,Python会自动加载最新的本地版本。之后在测试文件中正常导入:

from my_package.predict import read_data

(注意:如果你的包文件夹名是my-package,需确保setup.py里的name字段设置为my_package,Python包名通常使用下划线而非连字符)

方式二:手动添加项目路径到Python环境

如果不想安装包,可在测试文件开头添加以下代码,将项目根目录加入Python搜索路径:

import sys
from pathlib import Path
# 把项目根目录(tests文件夹的父目录)加入sys.path
sys.path.append(str(Path(__file__).parent.parent))

from my_package.predict import read_data

3. 确认VSCode使用的Python解释器正确

  • 点击VSCode右下角的Python版本标识,切换到你创建的conda环境
  • 或按下Ctrl+Shift+P(Windows/Linux)/Cmd+Shift+P(Mac),输入Python: Select Interpreter,选择对应的conda环境

4. 重启VSCode清理缓存

执行Ctrl+Shift+P输入Developer: Reload Window重启VSCode窗口,清除可能存在的测试发现缓存,之后重新触发测试发现。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 01:37:34