我有the pytest good integration practices guide建议的目录结构,如下所示:
.
src/
mypkg/
__init__.py
mypkg.py
tests/
__init__.py
test_mypkg.py
__init__.py
个文件都是空的,其他文件如下:
mypkg.py
def foo(x):
"""
Show x.
>>> foo(5)
x is 5
>>> foo("hello")
x is hello
"""
return "x is {0}".format(x)
test.py
from mypkg import *
def test_foo():
assert foo(5) == "x is 5"
当我从根目录运行pytest
时,我得到:
tests\test_foo.py:1: in <module>
from mypkg import *
E ModuleNotFoundError: No module named 'mypkg'
建议的方法是什么?
答案 0 :(得分:0)
我不是pytest专家,但这看起来像conftest.py的任务,conftest允许一个人从模块/软件包/共享夹具中加载测试,等等...
有关更多信息,请参见this page。
答案 1 :(得分:-1)
py不知道mypkg.py的路径。所以你需要使用以下两行来告知
import sys
sys.path.append("/path/to/src/mypkg")