繁体   English   中英

为什么 Gitlab CI/CD 中的 flask 应用程序测试阶段失败?

[英]Why test stage fails in flask app in the Gitlab CI/CD?

我正在学习 GitLab CI/CD,我想搭建一个平台在我的 flask 应用程序上运行测试。 没有测试阶段,一切都适用于 Gitlab CI/CD。 这是 my.gitlab-ci.yml 文件:

 image: python:3.8-slim-buster
    
    cache:
      paths:
        - .cache/pip
    
    stages:
      - build
      - test
      - deploy_heroku
    
    build message-requests:
      stage: build
      script:
        - apt-get update
        - apt-get install -y --no-install-recommends gcc
        - apt install -y default-libmysqlclient-dev
        - pip3 install -r requirements.txt
    
    test message-requests:
      stage: test
      script:
        - python3 test.py
    
    deploy_heroku:
      stage: deploy_heroku
      image: ruby:latest
      before_script:
        - apt-get update -qy
        - apt-get install -y ruby-dev
        - gem install dpl
      script:
        - dpl --provider=heroku --app=message-requests --api-key=$HEROKU_SECRET_KEY

我的管道在测试阶段导致此错误:

Traceback (most recent call last):
  File "test.py", line 1, in <module>
    from app import app
  File "/builds/dave/message-requests/app.py", line 1, in <module>
    from flask import Flask
ModuleNotFoundError: No module named 'flask'
Cleaning up project directory and file based variables
00:00
ERROR: Job failed: exit code 1

本地测试工作正常。 如何使用在构建阶段构建的应用程序数据? 我知道可以在构建阶段运行 test.py,但我听说最好有一个单独的测试阶段。 我认为解决方案是使用工件,但我不确定它们是如何工作的以及 python 应用程序安装所有内容的位置。 正如我所提到的,我是 GitLab CI/CD 的新手,因此,如果我做错了什么,我很高兴听到最佳实践。

在 GitLab,您创建的每个工作都在一个全新的环境中开始。 因此,您必须在每项工作中安装您的要求。

您的test message-requests: job 不采取任何步骤来安装 Flask 或其他依赖项。 您应该添加这些步骤。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM