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