使用pytest

时间:2019-05-26 08:07:26

标签: python pytest python-import

在我的应用程序调用同一目录中的另一个脚本的情况下,运行pytest时遇到问题。这是我的目录结构:

├── my_project/
│   ├── application/
│   |   ├──__init__.py
│   |   ├──app.py
│   |   ├──utils.py   
│   ├── application_test/
│   |   ├── __init__.py
│   │   ├── unit_test.py

app.py中的代码具有以下语句:from utils import func1, func2, func3,当我运行$ python app.py时,此代码可以正常工作。但是,当我从$ py.test目录级别运行my_project时,出现错误“ ModuleNotFoundError:没有名为'utils'的模块”。错误来自unit_test.py中的这一行:

import application.app

因为该行触发app.py,该行然后尝试从utils.py进行导入,所以即使app.py文件位于同一目录中,也无法看到utils.py。 / p>

我尝试使用$ python -m pytest application_test,并且在根中使用__init__.py,但没有使用,但是关于stackoverflow的所有这些或其他答案似乎都不起作用。

1 个答案:

答案 0 :(得分:0)

似乎import语句是相对于您当前所在目录的。在同一目录中调用另一个脚本的解决方案是使用相对导入。在这种情况下,from .utils import func1, func2, func3起作用了!