在我的旧虚拟环境中,我能够直接执行pytest tests/unit/
。
然后不知何故我搞砸了我的环境,不得不删除并重新安装我的.venv
然后在我激活新.venv
并重新安装所有软件包后,我尝试pytest tests/unit/
但它给出了此错误:
(.venv) john@MacBook-Pro:~/myproject$ pytest tests/unit/nti/ -p no:warnings
-bash: /usr/local/bin/pytest: /usr/local/opt/python/bin/python3.6: bad interpreter: No such file or directory
经过一些痛苦的试验,我发现我可以运行测试:
(.venv) john@MacBook-Pro:~/myproject$ python -m pytest tests/unit/nti/ -p no:warnings
那么,python -m pytest
和pytest
有什么区别?为什么pytest
工作失败,但python -m pytest
没事?
一种可能的选择是你的"tests"目录里面没有__init__.py
,所以你必须显式调用pytest模块(python -m pytest
(。对我来说,这在Debian 10,Python 3.7.3虚拟环境和pytest 6.2.3上有所不同。