使用 pytest 在 VSCODE 中设置 python 测试时出现问题

Jam*_*air 8 python testing pytest visual-studio-code

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

\n
PACKAGENAME/\n\xe2\x94\x9c\xe2\x94\x80 PACKAGENAME/\n\xe2\x94\x82  \xe2\x94\x9c\xe2\x94\x80 __init__.py\n\xe2\x94\x82  \xe2\x94\x9c\xe2\x94\x80 main.py\n\xe2\x94\x9c\xe2\x94\x80 tests/\n\xe2\x94\x82  \xe2\x94\x9c\xe2\x94\x80 test_main.py\n\xe2\x94\x9c\xe2\x94\x80 requirements.txt\n
Run Code Online (Sandbox Code Playgroud)\n

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

\n
from PACKAGENAME import *\n
Run Code Online (Sandbox Code Playgroud)\n

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

\n
=================================== ERRORS ====================================\n_____________________ ERROR collecting tests/test_main.py _____________________\nImportError while importing test module 'd:\\PATH\\TO\\PACKAGENAME\\tests\\test_main.py'.\nHint: make sure your test modules/packages have valid Python names.\nTraceback:\nC:\\Users\\USER\\anaconda3\\envs\\uni\\lib\\importlib\\__init__.py:127: in import_module\n    return _bootstrap._gcd_import(name[level:], package, level)\ntests\\test_main.py:1: in <module>\n    from PACKAGENAME import *\nE   ModuleNotFoundError: No module named 'PACKAGENAME'\n=========================== short test summary info ===========================\n
Run Code Online (Sandbox Code Playgroud)\n

有什么办法可以让这个工作而不必使用命令行吗?

\n

Lau*_*ent 9

我建议你尝试这样:

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