Python unittest 无法导入其他模块

Python unittest unable to import other modules

项目级别:

├─project_root    
├───application
│   └─── target.py
│   └─── utils.py
├───tests
├   └─── test_*.py

当我从 project_root 目录在 CLI 上 运行 py -m unittest discover 时,它会发现所有测试。但是,测试无法 运行,因为它们找不到 utils.py(target.py 依赖于此)。

有人知道如何解决这个问题吗?

这是一个范围问题,您需要使用相对导入,因为 test_*.py 位于其范围内不包含 utils.py 的文件夹中。

所以,有两个选择,将 utils.py 复制到目录中或使用相对导入来查找和导入库。

当我能找到一个相对导入的例子时,我会更新答案——我已经有一段时间没用过它们了。

编辑 - 找到一个。 还没有测试过,但是这种性质的相对导入的通用格式(使用上面显示的范围是:)

from .application import utils

“application”前面的点:“.application”告诉 python 解释器返回一个目录,找到名为“application”的模块(另一个文件夹),然后导入那里的文件。