python-3.x - Python单元测试找不到模块
问题描述
我有一个关于如何在 python 单元测试模块中正确导入模块的问题。这是我的目录结构
project -
| _ Library _
| |_ TimeCalculator.py
| _ Test _
|_ UnittestFile.py
我想在 TimeCalculator.py 中测试函数,所以在 UnittestFile.py 中我写
from .Library.TimeCalculator import TimeCalculator
但出现错误时说ImportError:尝试使用没有已知父包的相对导入
我想问在这种情况下如何在不设置 PATH 的情况下导入。
解决方案
如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 必须删除第一个.
推荐阅读
- javascript - 如何使用 axios 同时发布两个对象?
- laravel - 我想使用 laravel 显示分配的用户
- javascript - “位置”是反应中的保留字吗?如果是这样,它有什么作用?
- java - 如何使用返回void的功能接口?
- vb.net - 如何将图标注册到文件关联?
- javascript - 如何模拟与 Object.keys(localStorage) 一起使用的 localStorage?
- python - 从 python 解释器访问环境 $PATH 的快速方法?
- c# - C#:服务器违反了协议。部分=响应状态线。如何通过网络 Trace 进行调试
- php - 接受信用卡付款(Magento 1.9.4.2)php
- python - 散景悬停工具提示文本颜色