Python单元测试找不到模块[重复]
Posted
技术标签:
【中文标题】Python单元测试找不到模块[重复]【英文标题】:Python unit test cannot find module [duplicate] 【发布时间】:2020-10-04 13:22:24 【问题描述】:我有一个关于如何在 python 单元测试模块中正确导入模块的问题。 这是我的目录结构
project -
| _ Library _
| |_ TimeCalculator.py
| _ Test _
|_ UnittestFile.py
我想测试 TimeCalculator.py 中的函数 所以在 UnittestFile.py 我写了
from .Library.TimeCalculator import TimeCalculator
但错误提示 ImportError: 尝试相对导入,但没有已知的父包 请问这种情况下如何在不设置PATH的情况下导入。
【问题讨论】:
【参考方案1】:如python - Running unittest with typical test directory structure - Stack Overflow 中所述,您应该在Library
和Test
这两个文件夹中创建一个__init__.py
文件。
针对您的具体结构:
project
├── Library
│ ├── __init__.py # make it a package
│ └── TimeCalculator.py
└── test
├── __init__.py # also make test a package
└── UnittestFile.py
然后,您应该从导入语句中删除第一个 .
:
from Library.TimeCalculator import TimeCalculator
PD:不确定是否是重复问题,因为答案与python - Running unittest with typical test directory structure - Stack Overflow 几乎相同,但明显不同,因为必须删除第一个.
【讨论】:
我认为这是一个很好的重复目标。.
似乎是一个错字。以上是关于Python单元测试找不到模块[重复]的主要内容,如果未能解决你的问题,请参考以下文章
Intellij Android + Maven 找不到单元测试
使用 typescript/mocha 进行单元测试时找不到模块
将 Swiper 6 升级到 7 后,在单元测试(开玩笑)上找不到模块“swiper_angular”
错误:找不到满足单元测试要求的版本(来自版本:无)错误:未找到单元测试的匹配分布