【问题标题】:Issues setting up python testing in VSCODE using pytest使用 pytest 在 VSCODE 中设置 python 测试的问题
【发布时间】:2021-11-27 15:59:59
【问题描述】:

我正在尝试将 VSCode 中的测试扩展与 Python 扩展一起使用。我使用 pytest 作为我的测试库。我的文件夹结构如下所示:

PACKAGENAME/
├─ PACKAGENAME/
│  ├─ __init__.py
│  ├─ main.py
├─ tests/
│  ├─ test_main.py
├─ requirements.txt

test_main.py 文件中,我尝试导入包代码,以便对其进行测试:

from PACKAGENAME import *

在命令行的根目录PACKAGENAME 中,我可以使用命令python -m pytest,它可以正常运行测试。没有找到模块没有问题。但是,当我尝试使用 VSCode 测试选项卡时,发现了测试,但是这个错误:

=================================== ERRORS ====================================
_____________________ ERROR collecting tests/test_main.py _____________________
ImportError while importing test module 'd:\PATH\TO\PACKAGENAME\tests\test_main.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
C:\Users\USER\anaconda3\envs\uni\lib\importlib\__init__.py:127: in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
tests\test_main.py:1: in <module>
    from PACKAGENAME import *
E   ModuleNotFoundError: No module named 'PACKAGENAME'
=========================== short test summary info ===========================

有什么方法可以在不使用命令行的情况下使其工作?

【问题讨论】:

  • 您能否确定您在 VS Code 中选择的 Python 解释器与 VS Code 命令终端正在使用的解释器相同?
  • 嗨,Jason,我可以确认正在使用的解释器与终端中的解释器肯定相同。它是运行 run_adapater.py 发现脚本的脚本,可以从 Python 输出中看到。

标签: python testing visual-studio-code pytest


【解决方案1】:

我建议你这样尝试:

  • 确保您的 VS Code 工作区设置为(根目录)PACKAGENAME 目录
  • tests目录中添加一个空的__init__.py文件
  • test_main.py 中,将from PACKAGENAME import * 替换为from PACKAGENAME.main import *

【讨论】:

  • 添加空的__init__.py 成功了!一切正常。导入语句按预期工作,因为__init__.py 文件包含文件中使用的必要导入。非常感谢!
猜你喜欢
  • 2023-03-06
  • 1970-01-01
  • 1970-01-01
  • 2019-12-07
  • 2021-11-30
  • 2019-09-14
  • 2020-05-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多