尝试使用文件夹结构在Python3中编写测试
package/
__init.py__
Foo.py
Bar.py
test/
__init.py__
test_Foo.py
Foo.py
import Bar
test_Foo.py
import Foo
运行python3 -m unittest
会产生No module named Foo
如果我将其更改为
from package import Foo
它将解决,但是在Foo.py
中将出现错误No module named 'Bar'
如果我将Foo.py
更改为
from package import Bar
测试将正确运行,但是运行python3 Foo.py
会得到No module named 'package'
关于这种问题,我经历了各种各样的回答,
Running unittest with typical test directory structure
还有这个
Python3 import modules from folder to another folder
他们都没有解决这个问题
答案 0 :(得分:0)
您的项目根目录(以及工作目录!)必须是 package 的父级。
然后每个import
将采用import package.module
或from package import module
的形式。
如果您运行python packgae/Foo.py
或python -m package.Foo
,它将正常工作。
还可以查看pypa - sample project来了解推荐的Python项目结构。