有时候测试没失败,但其实是路径或命名规则没匹配上。可以先只收集、不执行:
环境:Python 3.11+,pytest 8+。在项目目录运行:
python -m pytest --collect-only -q
它会列出 pytest 发现的测试用例数量和节点名,不会运行测试,也不会改项目文件。想确认某个目录是否被收集到,可以缩小范围:
python -m pytest tests/unit --collect-only -q
如果结果是 no tests collected,再检查文件名、函数名,以及 pytest.ini 或 pyproject.toml 里的收集配置,通常比直接盯着测试输出找原因快。