Pytest 抛出 'attempted relative import beyond top-level package'
Pytest throws 'attempted relative import beyond top-level package'
我知道以前有人问过这个问题,但我似乎找不到解决方案。
这是我的文件夹结构:
folder_name/
__init__.py
start.py
src/
__init__.py
app.py
api.py
tests/
__init__.py
thetest.py
Start.py:
from src.app import create_app
app = create_app()
if __name__ == '__main__':
app.run(host='0.0.0.0', debug=True)
App.py:
def create_app():
app = Flask(__name__)
return app
Api.py:
这是所有端点
我的服务器工作正常。
但是,当我将 pytest 引入等式时,它失败了。
我使用这一行:
从..开始导入应用程序
导入 pytest
我收到这个错误。
我试过将这些行放在 thetest.py
的开头:
import os
import sys
sys.path.append(os.getcwd())
但错误依旧。
也许你可以尝试使用unittest
进行测试:
cd "folder_name/../" # ! outside folder_name !
python3 -m unittest discover --top-level-directory=. --start-directory=./tests
这是有效的:
在 thetest.py
文件中:
from start import app
我知道以前有人问过这个问题,但我似乎找不到解决方案。
这是我的文件夹结构:
folder_name/
__init__.py
start.py
src/
__init__.py
app.py
api.py
tests/
__init__.py
thetest.py
Start.py:
from src.app import create_app
app = create_app()
if __name__ == '__main__':
app.run(host='0.0.0.0', debug=True)
App.py:
def create_app():
app = Flask(__name__)
return app
Api.py: 这是所有端点
我的服务器工作正常。
但是,当我将 pytest 引入等式时,它失败了。
我使用这一行: 从..开始导入应用程序 导入 pytest
我收到这个错误。
我试过将这些行放在 thetest.py
的开头:
import os
import sys
sys.path.append(os.getcwd())
但错误依旧。
也许你可以尝试使用unittest
进行测试:
cd "folder_name/../" # ! outside folder_name !
python3 -m unittest discover --top-level-directory=. --start-directory=./tests
这是有效的:
在 thetest.py
文件中:
from start import app