Atu*_*tia 6 python unit-testing importerror flask
这是我的项目设置:
my_project
./my_project
./__init__.py
./foo
./__init__.py
./bar.py
./tests
./__init__.py
./test_bar.py
Run Code Online (Sandbox Code Playgroud)
在里面test_bar.py我有以下import语句:
from foo import bar
但是,当我运行时,python /my_project/tests/test_bar.py我收到此错误:
ImportError: No module named foo.
有想法该怎么解决这个吗?
想想你的是什么PYTHONPATH.您的项目的顶级包是my_project,因此必须是项目中某些内容的任何导入的开始.
from my_project.foo import bar
Run Code Online (Sandbox Code Playgroud)
您也可以使用相对导入,虽然这不是很清楚,如果您更改了执行此导入的模块的相对位置,则会中断.
from ..foo import bar
Run Code Online (Sandbox Code Playgroud)
理想情况下,该test文件夹根本不是包,也不是应用程序包的一部分.请参阅pytests的良好实践页面.这要求您setup.py在包中添加一个并在开发模式下将其安装到virtualenv中.
pip install -e .
Run Code Online (Sandbox Code Playgroud)
不要通过直接指向应用程序中的文件来运行测试.在正确构建/安装项目之后,使用发现机制来处理您用于为您运行测试的任何框架.例如,使用pytest,只需指向test文件夹:
pytest tests
Run Code Online (Sandbox Code Playgroud)
或者对于内置的unittest模块:
python -m unittest discover -s tests
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7395 次 |
| 最近记录: |