You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GitLab CI中启动Flask服务执行测试遇模块错误求助

解决GitLab CI中Flask自动化测试的模块错误问题

问题根源

你用python3 -m app.py启动Flask服务是错误的——-m参数是用来运行Python模块(不带.py后缀)的,直接执行脚本应该去掉这个参数。另外,直接运行app.py会阻塞后续的测试命令,必须把服务放到后台运行,同时要等服务完全启动后再执行测试。

修正后的.gitlab-ci.yml配置

image: ubuntu:18.04
stages:
    - test
test:
  stage: test
  script:
    - apt-get update -qy
    - apt-get install -y python3 python3-pip curl
    - pip3 install requests flask
    - cd src
    # 后台启动Flask服务
    - python3 app.py &
    # 等待服务启动成功(最多等30秒,每2秒检查一次)
    - timeout 30s bash -c 'while ! curl -s http://127.0.0.1:8006 > /dev/null; do sleep 2; done'
    # 执行测试
    - python3 -m unittest test

关键改动说明

  • 启动命令从python3 -m app.py改为python3 app.py &:去掉-m符合脚本运行规范,&让服务在后台运行,不阻塞后续测试命令执行。
  • 添加curl安装和等待逻辑:确保Flask服务完全启动就绪后再跑测试,避免因服务未初始化完成导致测试失败。
  • 保留原有的依赖安装、测试命令逻辑,仅调整启动相关步骤。

额外优化建议

如果你的Flask项目有更多依赖,建议在项目根目录创建requirements.txt文件,把所有依赖列进去:

flask
requests

然后把CI脚本里的pip3 install requests flask改成pip3 install -r requirements.txt,这样更简洁,也能避免漏装依赖。

内容的提问来源于stack exchange,提问作者Surly Knott

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 12:45:37