导入使用pytest破坏VSCode测试

时间:2019-07-30 14:22:54

标签: python visual-studio-code pytest python-import

我有一个项目,我想要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:没有名为项目的模块”。

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

2 个答案:

答案 0 :(得分:0)

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

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

请注意,以project文件夹为根打开了VSCode。

答案 1 :(得分:0)

我有同样的问题。对我有用的解决方案是引入一个var ptr = (T*)value.mValue; 文件,该文件包含相对于我的工作区文件夹的.env条目。

PYTHONPATH

然后我在工作区设置中添加了一行,用于指定PYTHONPATH="path1:path2:pathN" 文件的位置。

.env