python - 在 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。
什么是正确的方法?
解决方案
您应该从主目录运行所有内容:
python -m module1.thing1
python -m module2.thingA
这种方式module1
可以module2
相互导入。单元测试应该以相同的方式运行:
python -m unittest discover module1
python -m unittest discover module2
推荐阅读
- javascript - 如何使用 React ChartJs 只为每个第 n 个数据点显示一个点?
- reactjs - 发送查询 Apollo 客户端时出现网络错误
- java - 在循环内部/外部使用“Runtime.getRuntime()”
- javascript - 如何在单个数据库列中插入动态添加的输入字段值?
- reactjs - 如何将反应路由器错误与私有路由一起添加
- mysql - 所需问题的输出不正确
- c++ - 使用 Boost Spirit X3 解析特征矩阵
- python - 如何聚类连续峰宽
- go - 如何在 Go 中压缩 int(数字)
- ios - Swift4 - 如何对数组的每个元素应用异步函数