python-3.x - Python单元测试找不到模块

标签 python-3.x python-unittest

<分区>

我有一个关于如何在 python 单元测试模块中正确导入模块的问题。 这是我的目录结构

project -
        | _ Library _
        |            |_ TimeCalculator.py
        | _ Test _
                  |_ UnittestFile.py

我想测试 TimeCalculator.py 中的函数 所以在 UnittestFile.py 中我写

from .Library.TimeCalculator import TimeCalculator

但是出现错误说ImportError: attempted relative import with no known parent package
我想问一下在这种情况下如何在不设置 PATH 的情况下导入。

最佳答案

python - Running unittest with typical test directory structure - Stack Overflow 中所述,您应该在两个文件夹 LibraryTest 中创建一个 __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-3.x - Python单元测试找不到模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62383007/

相关文章:

Python 接口(interface)模式和单元测试代码覆盖率

python - 如何使用 unittest 断言断言?

python - 从另一个服务(微服务架构)验证 Flask 单元测试客户端?

python - 找到第一个超过 100 万的斐波那契数

python - 删除位数组中前导 0 的索引

python - 如何在pygame中防止垃圾邮件子弹

regex - 将字符串拆分为多个分隔符

python - 属性错误 : 'ExceptionInfo' object has no attribute 'traceback' when using pytest to assert exceptions

python - 使用 unittest 测试 argparse - 退出错误

python - 如何将数据模拟为 request.Response python 中的类型