首页 > 解决方案 > 在 Python 的父目录中使用其他模块的模块(在子目录中)编写单元测试的正确方法是什么

问题描述

试图在标题中尽可能地描述它。我对使用 python 进行大型项目很陌生。通常,我只将它用于小脚本。我通读了手册,发现了制作模块的正确方法。

所以我现在设置了以下文件结构:

- main.py
- module1
  - __init__.py
  - thing1.py
  - thing2.py
- module2
  - __init__.py
  - thingA.py
  - thingB.py

我的项目将在我启动 main.py 时运行。

if __name__ == '__main__':我知道我可以通过在每个“事物”中使用我所做的来为每个“事物”编写简单的单元测试。

文件thingB.py 需要thing2.py 才能工作。只要启动main.py,thingB就会找到thing2。但是当我在自己的目录中直接启动thingB(使其单元测试运行)时,它不会找到thing2。

什么是正确的方法?

标签: pythonpython-unittestpython-moduledirectory-structure

解决方案


您应该从主目录运行所有内容:

python -m module1.thing1
python -m module2.thingA

这种方式module1可以module2相互导入。单元测试应该以相同的方式运行:

python -m unittest discover module1
python -m unittest discover module2

推荐阅读