【问题标题】:VSCode does not run pytest properly from virtual environmentVSCode 无法从虚拟环境中正确运行 pytest
【发布时间】:2021-02-11 18:53:23
【问题描述】:

我刚刚发现 vscode 可以直接从编辑器中运行 pytest。太棒了——如果它可以工作的话。

目前我正在虚拟环境中开发一个项目,该项目已在 vscode 中正确配置(并已激活)。 pytest 安装在虚拟环境中并激活,我编写的测试按预期发现。但是每当我运行测试时,它都会说,它找不到我当前正在处理的模块并且会引发 ModuleNotFoundError

我已经用pip install -e . 安装了这个模块。在 vscode 之外的普通终端控制台上运行相同的测试可以正常工作。

如果仅为工作区和/或用户启用 pytest,则没有区别。

示例代码:

def test_something():
   from mymodule.config import Config
   ...

输出:

E       ModuleNotFoundError: No module named 'mymodule'

Pip 示例输出:

mymodule               0.1.0     /path/to/mymodule

Stnge 也是,vscode 使用所有已安装的插件(即 pytest-datafiles)运行正确的 pytest 脚本(它不是全局安装,仅在此环境中)。

有什么想法吗?

问候,托马斯

【问题讨论】:

  • my_module 是一个目录吗?
  • 是的。其实是一个包。我只是看到我的代码中有错字。
  • 一切都好吗?
  • 没有。错字只是来自示例代码,在我的实际项目中它不起作用,即使我的模块在那里并已安装。
  • mymodule 与脚本在同一目录中吗?

标签: python visual-studio-code pytest


【解决方案1】:

我玩了一下路径设置。通过使用 pytest 的完整路径作为工作区设置,它终于开始工作了。

"python.testing.pytestPath": "/home/thomas/.virtualenvs/edis/bin/pytest"

不要问我为什么即使pytest在虚拟环境的路径下,VSCode也不能正常工作。

问候,托马斯

【讨论】:

  • 我花了很多时间试图弄清楚这一点,尝试了一切。这是唯一有效的方法。非常感谢!
  • 太棒了!!希望我早点想到这一点(并且我自己)。非常感谢....这也解决了一个非常烦人的问题,我的 VS Code pylint 正在寻找一些模块。
猜你喜欢
  • 1970-01-01
  • 2021-12-28
  • 2020-05-25
  • 1970-01-01
  • 2022-11-06
  • 2019-01-19
  • 1970-01-01
  • 2019-08-29
  • 1970-01-01
相关资源
最近更新 更多