前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >GitLab CI是什么?在GitLab上自动化进行单元测试的方法

GitLab CI是什么?在GitLab上自动化进行单元测试的方法

原创
作者头像
種法龍
发布2024-01-03 16:42:43
4570
发布2024-01-03 16:42:43
举报
文章被收录于专栏:未知未知

在这篇文章中,将介绍在GitLab上使用GitLab CI轻松实现单元测试自动化的方法。

首先


存在着CI(Continuous Integration,持续集成)的概念。为了提高程序开发的效率和质量,我们会持续执行构建和测试操作。具体来说,例如,每次对Git仓库进行更改并推送时,都会自动配置以执行构建和测试操作。这样,即使出现了错误破坏了构建或测试未通过,也可以通过自动运行的测试迅速发现问题。

通常,在设置CI环境时,需要准备一个用于执行构建和测试的服务器,并且需要相应的软件来启动构建和测试操作(例如Jenkins等)。

GitLab是由GitLab公司开发的开源Git仓库管理工具。它包含有Wiki功能、Issue跟踪功能、CI/CD功能等。

由于GitLab是开源软件,因此可以自行安装和管理,但GitLab公司也提供托管的GitLab服务,可以在GitLab.com上使用。在GitLab.com上,与GitHub不同的是,您可以免费管理私有仓库,这是其吸引人的地方。

在GitLab CI中,为了进行CI构建和测试,GitLab.com已经为我们准备好了服务器,因此我们无需自行准备,可以轻松配置CI。

本文将通过在GitLab.com上使用GitLab CI,演示如何轻松引入CI。我们将以Python的例子进行介绍。

创建Git仓库


那么,我们将在GitLab上实际自动化进行单元测试。首先,在GitLab.com上注册账户并登录。确保已经设置好SSH公钥等信息。

从GitLab.com点击"New Project",然后进入项目创建页面。

在"Project name"字段中输入"gitlab-ci-test",点击"Create project"创建项目。

在终端中输入以下命令:

代码语言:bash
复制
git clone git@gitlab.com:[你的GitLab.com用户名]/gitlab-ci-test.git

这样,就可以克隆刚创建的项目了。

程序的创建


输入 cd gitlab-ci-test 并移动到刚克隆的仓库。作为测试对象的文件,创建一个名为 main.py 的文件,并保存以下内容:

代码语言:python
复制
def plus1(x):
    return x + 1

同时,作为编写单元测试的文件,创建一个名为 test_main.py 的文件,并保存以下内容:

代码语言:python
复制
from main import *

def test_plus1():
    assert plus1(1) == 2

现在,你已经创建了一个函数 plus1,它会将给定的数加1并返回,以及一个测试该函数的 test_plus1 函数。

GitLab CI的设置


接下来,为了使用GitLab CI,我们需要编写GitLab CI的配置文件。要创建GitLab CI配置文件,只需在仓库的根目录下创建一个名为 .gitlab-ci.yml 的YAML文件。创建 .gitlab-ci.yml 文件,并输入以下内容:

代码语言:yaml
复制
image: python:3-alpine

before_script:
  - pip install pytest pytest-cov

test:
  script:
    - pytest --cov=.

这样配置后,GitLab CI将从Docker Hub获取python镜像,然后在该镜像上顺序执行 pip install pytest pytest-covpytest --cov=.

完成以上步骤创建了 main.pytest_main.py.gitlab-ci.yml 这三个文件后,将它们推送到GitLab.com。

代码语言:bash
复制
git add .
git commit -m "first commit"
git push

这将自动在GitLab.com上执行测试。访问 https://gitlab.com/[你的用户名]/gitlab-ci-test,点击左侧菜单的 "CI/CD",你将看到自动运行的测试情况。

如果测试失败,将通过电子邮件自动通知。

测试覆盖率的测量


你也可以在GitLab上获取测试覆盖率。要获取测试覆盖率,请访问GitLab.com上的仓库页面,进入「Settings→CI/CD→General pipelines→Test coverage parsing」,输入「\d+\%\s*$」,然后点击「Save changes」。然后重新运行测试,你将看到GitLab成功获取了测试覆盖率。

值得注意的是,如果你使用Scala + sbt + ScalaTest + sbt-scoverage配置自动化测试,你可以在「Test coverage parsing」中输入「Coverage was [\d+.\d+\%]」。有关配置文件如 .gitlab-ci.yml 等的设置,你可以参考官方的GitLab-examples / scala-sbt-sample-app · GitLab。

总结


在本文中,我们了解了如何使用GitLab CI轻松设置CI。

在GitLab.com上使用GitLab CI,由于可以在GitLab提供的计算机上执行构建和单元测试,因此无需准备自己的CI机器,非常方便。

如果在开发过程中没有引入CI,项目会继续发展,构建和测试会被破坏并被忽略,那么在这种状态下引入CI将会很困难。因此,尽早引入CI,保持健康的开发体制。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 首先
  • 创建Git仓库
  • 程序的创建
  • GitLab CI的设置
  • 测试覆盖率的测量
  • 总结
相关产品与服务
持续集成
CODING 持续集成(CODING Continuous Integration,CODING-CI)全面兼容 Jenkins 的持续集成服务,支持 Java、Python、NodeJS 等所有主流语言,并且支持 Docker 镜像的构建。图形化编排,高配集群多 Job 并行构建全面提速您的构建任务。支持主流的 Git 代码仓库,包括 CODING 代码托管、GitHub、GitLab 等。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档