首页 > 解决方案 > Python单元测试找不到模块

问题描述

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

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

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

from .Library.TimeCalculator import TimeCalculator

但出现错误时说ImportError:尝试使用没有已知父包的相对导入
我想问在这种情况下如何在不设置 PATH 的情况下导入。

标签: python-3.xpython-unittest

解决方案


python - 使用典型测试目录结构运行 unittest - Stack Overflow__init__.py中所述,您应该在两个文件夹中创建一个文件,Library并且Test.

对于您的特定结构:

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 几乎相同 - 使用典型的测试目录结构运行 unittest - 堆栈溢出但明显不同,因为 ha 必须删除第一个.


推荐阅读