如何设置项目结构以便 unittest 导入工作?
How to setup project structure so unittest imports work?
我有一个看起来像这样的项目:
project/
setup.py
project/
__init__.py
a.py
b.py
test/
__init__.py
test_a.py
test_b.py
和 b.py
包含导入语句 import a
。
运行 python -m unittest
或 python setup.py test
来自 project
根目录的结果是 ModuleNotFoundError
当 test_b.py
尝试 运行 from project import b
.
据我所知,这与 几乎完全相同,但它不起作用。任何指点表示赞赏!
这是由 b.py
中存在的相关模块导入 import a
引起的
对于Python 3,这应该是:
from . import a
您在 b.py 中的导入语句应该是。
from project import a
然后在 test_a.py 你可以做
import unittest
from project import a
from project import b
class Test(unittest.TestCase):
def test(self):
print(a.a_var)
print(b.b_var)
pass
然后您可以运行您的测试
python -m unittest
a
b
.
----------------------------------------------------------------------
Ran 1 test in 0.000s
我有一个看起来像这样的项目:
project/
setup.py
project/
__init__.py
a.py
b.py
test/
__init__.py
test_a.py
test_b.py
和 b.py
包含导入语句 import a
。
运行 python -m unittest
或 python setup.py test
来自 project
根目录的结果是 ModuleNotFoundError
当 test_b.py
尝试 运行 from project import b
.
据我所知,这与 几乎完全相同,但它不起作用。任何指点表示赞赏!
这是由 b.py
import a
引起的
对于Python 3,这应该是:
from . import a
您在 b.py 中的导入语句应该是。
from project import a
然后在 test_a.py 你可以做
import unittest
from project import a
from project import b
class Test(unittest.TestCase):
def test(self):
print(a.a_var)
print(b.b_var)
pass
然后您可以运行您的测试
python -m unittest
a
b
.
----------------------------------------------------------------------
Ran 1 test in 0.000s