我正在尝试向项目添加一些单元测试,但项目内的导入不起作用。
项目结构如下:
root
| src
| | __init__.py
| | bsp.py
| | helpers.py
| test
| | __init__.py
| | test_helpers.py
两个 init.py 都是空的。 bsp.py 如下所示:
class BSP:
# some class stuff
helpers.py 如下所示:
from bsp import BSP
def func(x: BSP) -> BSP:
return x
最后 test_helpers.py 如下所示:
from src.helpers import func
from src.bsp import BSP
from unittest import TestCase
class TestFunc(TestCase):
def test_func(self):
x = BSP()
assert func(x) == x
当我从 root 运行
pytest
时,导入不起作用:
File "...\\root\\tests\\test_helpers.py", line 1, in \<module\>
from src.helpers import func
File "...\\root\\src\\helpers.py", line 1, in \<module\>
from bsp import BSP
ModuleNotFoundError: No module named 'bsp'
但是从 src 运行该函数确实有效。
我可能做了一些愚蠢的事情,但我已经寻找了一段时间并且不确定我做错了什么:sweat_smile:
我已经尝试过:
from bsp import BSP
中的 bsp 前面;但是现在 src 中的导入已损坏(例如 src/main.py 从 helper 执行 func,如果添加 . 则会引发导入错误)pytest
、py -m pytest
、unittest
、py -m unittest