【问题标题】:Python unit test cannot find module [duplicate]Python单元测试找不到模块[重复]
【发布时间】: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的情况下导入。

【问题讨论】:

    标签: python-3.x python-unittest


    【解决方案1】:

    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 几乎相同,但明显不同,因为必须删除第一个.

    【讨论】:

    • 我认为这是一个很好的重复目标。 . 似乎是一个错字。
    猜你喜欢
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-09
    • 2016-06-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多