当前位置: 代码迷 >> python >> python的导入不支持单元测试
  详细解决方案

python的导入不支持单元测试

热度:63   发布时间:2023-06-16 14:12:54.0

我有以下目录树(Python 2.7):

./pkg
    ./main.py
    ./A
        ./a.py
    ./B
        ./b.py
    ./C
        ./c.py

a.py,b.py和c.py需要互相导入,因此我有两个选择:

  1. 使用相对导入 ,这意味着我必须从./pkg/main.py或目录树顶部的另一个文件中启动程序。 那真的很不错,但是当我对其中一个文件编写测试时,问题就开始了。 我无法在./main/A中编写导入a.py的测试,因为a.py无法使用b.py和c.py,因此唯一的方法是在上编写测试函数。 /主要。

  2. 在每个文件中将./main的绝对路径添加到sys.path中 这意味着我必须为所有文件写相同的三行,如果我有300个文件而不是3个,那是很痛苦的(而且很可能不是最好的选择)。

所以我该怎么做?

使用相对进口。

如果pkg是项目的根路径,请使用:

python -m unittest A.a

使导入工作。

  相关解决方案