如何设置项目结构以便 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 unittestpython setup.py test 来自 project 根目录的结果是 ModuleNotFoundErrortest_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