首页 > 解决方案 > 使用 pytest 导入会破坏 VSCode 测试

问题描述

我有一个项目,我希望 VS Code 发现测试和其他测试功能,以使测试更容易。我有一个问题,当我尝试发现测试时,测试文件中的导入会中断。

我有一个像这样的文件结构:

project\
  __init__.py
  package1\
    module1.py
    __init__.py
  tests\
    test.py
    __init__.py

在 test.py 我有一行:

import project.package1.module1 as module1

我通过调用根文件夹来运行我的项目python -m project,并且我能够通过python -m pytest project从根文件夹调用来成功运行测试。

当我运行 VS Code 的“发现测试”功能或尝试使用调试器单步执行文件时,我收到错误“ModuleNotFoundError: No module named project”。

有谁知道如何解决这个问题?

标签: pythonvisual-studio-codepytestpython-import

解决方案


我遇到了同样的问题,我能够在 VSCode 的终端中成功运行pytest,但发现失败了。python -m pytest我的解决方案是通过以下方式实现失败的导入

import sys
sys.path.insert(0, '/full/path/to/package1/')
from package1.module1 import module1

请注意,VSCode 是以project文件夹为根目录打开的。


推荐阅读