Py学习  »  Git

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

Dave • 4 年前 • 1599 次点击  

我正在学习GitLab CI/CD,我想搭建一个平台,在我的flask应用程序上运行测试。没有测试阶段,一切都可以通过Gitlab CI/CD运行。这是我的。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

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

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/130059
文章 [ 1 ]  |  最新文章 4 年前
sytech
Reply   •   1 楼
sytech    4 年前

在GitLab中,您创建的每个工作都是在一个全新的环境中开始的。所以,你必须在每项工作中安装你的需求。

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