必须安装Microsoft官方Python扩展并禁用过时的Pytest扩展;确保pytestEnabled为true、文件命名/路径符合test_.py或_test.py规则、项目根目录正确打开、pytest已安装到当前环境且路径配置无误。

PyTest插件没装对,测试树根本不会出现
VSCode里看不到测试树,90%是因为没装对插件或配置冲突。必须装 Python 官方扩展(Microsoft出品),它内置了测试框架支持;Python Test Explorer 是第三方补充,但非必需。别装 pytest 单独的“Pytest”扩展——那个是过时的、不维护的,会和官方扩展抢控制权,导致测试发现失败或树状结构空白。
装完后重启VSCode,再确认设置里没禁用测试功能:
-
"python.testing.pytestEnabled"必须为true -
"python.testing.pytestArgs"如果设了错误路径(比如指向不存在的tests/),测试树也会空着 - 项目根目录下没有
pyproject.toml或pytest.ini时,VSCode默认只扫test_*.py和*_test.py文件——名字不对就看不见
测试文件命名或位置不对,PyTest根本发现不了
PyTest靠文件名和目录结构自动发现测试,VSCode的测试树完全依赖这套发现逻辑。不是所有带 assert 的脚本都会被识别为测试。
必须满足以下任一条件:
立即学习“Python免费学习笔记(深入)”;
- 文件名匹配
test_*.py或*_test.py(例如test_api.py,不能叫api_tester.py) - 文件在名为
tests或test的子目录下(且该目录有__init__.py) - 项目根目录有
pyproject.toml并配置了[tool.pytest.ini_options],显式指定testpaths
常见坑:src/myapp/test_utils.py 不会被发现——因为不在 tests/ 目录下,也不符合命名规则。要么改名成 src/myapp/test_utils.py → tests/test_utils.py,要么在 pyproject.toml 里加 testpaths = ["src"]。
测试树显示“Loading…”卡住,其实是工作区没选对
VSCode的测试功能严格绑定当前打开的「文件夹工作区」。如果只是打开了单个 .py 文件,或者打开的是父级目录(比如你项目在 ~/proj/myapp,却打开了 ~/proj),测试树就会一直转圈或报 No tests discovered。
正确做法:
- 用
File > Open Folder...直接打开你的 Python 项目根目录(即含pyproject.toml或setup.py的那层) - 确认状态栏右下角显示的 Python 解释器路径是该项目虚拟环境里的(比如
.venv/bin/python),不是系统全局 Python - 终端里手动跑一次
pytest --collect-only,看是否能列出测试项——如果命令行都列不出,VSCode肯定也树不起来
测试树里点运行没反应,检查 pytest 是否可执行
VSCode调用的是你环境里的 pytest 命令,不是插件自带的。如果 pytest 没装进当前 Python 环境,或者装了但不在 PATH 里,点击运行就静默失败。
验证和修复步骤:
- 在 VSCode 集成终端中运行
which pytest(macOS/Linux)或where pytest(Windows),确认输出路径属于当前选中的 Python 环境 - 如果没输出,先激活虚拟环境,再运行
pip install pytest - 如果输出路径是对的,但在 VSCode 里仍不响应,试试在设置里显式指定:把
"python.testing.pytestPath"设为完整路径,比如"./.venv/bin/pytest"
特别注意:用 Conda 环境时,pytest 必须通过 conda install pytest 安装,混用 pip install pytest 可能导致命令存在但模块导入失败,VSCode调用时无日志、无报错、就是不动。


















