代码之家  ›  专栏  ›  技术社区  ›  Alex

如何设置项目结构以便unittest导入工作?

  •  1
  • Alex  · 技术社区  · 6 年前

    我有一个这样的项目:

    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

    据我所知,这几乎是精确的设置 https://stackoverflow.com/a/24266885/4190459 但它不起作用。感谢您的指点!

    2 回复  |  直到 6 年前
        1
  •  1
  •   Will Keeling    6 年前

    这是由相对模块导入引起的 import a 存在于 b.py

    对于Python 3,这应该是:

    from . import a
    
        2
  •  0
  •   ioluwayo    6 年前

    b.py中的导入语句应为。

    from project import a
    

    然后在test\u 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