py.test 与 pytest 命令有什么区别?
没有区别——py.test 是 pytest 工具的旧命令名,3.0 版本起统一为 pytest,旧名保留为别名。新代码与新文档一律使用 pytest。
没有功能区别:py.test 是 pytest 项目早期的命令名,pytest 3.0(2016 年)起正式更名为 pytest,py.test 仅作为向后兼容的别名保留。新环境直接用这个命令即可:
pytest tests/ # 推荐
py.test tests/ # 旧别名,多数版本仍可用
背景
项目最初叫 "py.test"(py 库的一部分),独立成名后命令随之改为 pytest。老教程、老 Makefile 里的 py.test 就是这么来的。
常见问题(FAQ)
Q:我的系统只有 py.test 没有 pytest? 不一定是版本太老,也可能是 PATH、虚拟环境或入口脚本安装问题。先在目标环境用 python -m pytest --version 确认解释器和版本,再检查命令路径或修复安装。
Q:python -m pytest 和 pytest 有区别吗? 主要功能一致,但两条命令可能指向不同解释器;python -m pytest 明确使用该 Python,并将当前目录加入 sys.path,这会影响导入结果。