【发布时间】:2022-08-04 01:10:27
【问题描述】:
# main.py
from fastapi import FastAPI
import nest_asyncio
nest_asyncio.apply()
app = FastAPI()
@app.get(\'/hello\')
def hello():
return {\'msg\': \'hello\'}
# test_main.py
from .main import app
client = TestClient(app)
def test_hello():
res = client.get(\'/hello\')
assert res.status_code == 200
# python-app.yml workflow file
name: Python application
on:
push:
branches: [ \"main\" ]
pull_request:
branches: [ \"main\" ]
permissions:
contents: read
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Python 3.10
uses: actions/setup-python@v3
with:
python-version: \"3.10\"
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install flake8 pytest
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
- name: Test with pytest
run: |
pytest
# requirements.txt
fastapi == 0.78.0
pytest == 7.1.2
nest_asyncio == 1.5.5
我有上面的代码和工作流文件,在我的本地机器上执行pytest时是成功的,但是如果用GitHub操作运行它,工作流不能自动停止,换句话说,步骤\'Test with pytest\'仍然是进行中。
如果我删除代码 \'nest_asyncio.apply()\',工作流程运行良好,但我知道我需要此代码,因为我将使用 asyncio.get_event_loop() 来做其他事情。所以必须将它保存在我的代码中。
有人对这个问题有任何想法吗?我应该怎么做才能使工作流程正常工作?提前致谢。
-
github.com/AngieLiJing/fastapi-service/actions 这是我的 GitHub Actions 页面,任何人都可以看到它并帮助我检查问题。再次感谢。
-
import nest_asyncio nest_asyncio.apply() 去掉这两行。更改为使用另一种方式并行发送请求。参考链接:stackoverflow.com/questions/63872924/…
标签: python pytest github-actions fastapi nest-asyncio