如何设置项目结构以便单元测试导入工作?

时间:2018-04-10 21:34:51

标签: python python-unittest

我有一个看起来像这样的项目:

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根目录中的ModuleNotFoundErrortest_b.py会产生from project import b

据我所知,这几乎是https://stackoverflow.com/a/24266885/4190459的确切设置,但它不起作用。任何指针赞赏!

2 个答案:

答案 0 :(得分:1)

这是由import a

中存在的相对模块导入b.py引起的

对于Python 3,这应该是:

from . import a

答案 1 :(得分:0)

b.py中的import语句应为。

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