阅读 312

GitLab CI / CD 持续集成和单元测试

  • 配置.gitlab-ci.yml

  • 接入单元测试

.gitlab-ci.yml说明

一个完整的项目的生命周期都要经历的流程:开发--打包--测试--部署。现比较流行的CI/CD手段可以有效的约束代码质量 ,完 快速部署上线。

接下来实践:基于GitLab CI / CD 持续集成Node项目

写个简单的node项目使用koa框架,增加.gitlab-ci.yml配置文件,其基本写法:

# 定义stages
stages:
  - build
  - test
  - deploy
#定义job
build:
  stage: build # 指向对应的stage
  script:
    - npm install
#定义job
test:
  stage: test
  script:
      - echo "start:npm run test"
#定义job
deploy:
  stage: deploy
  script:
    - echo "deploy:push the project to the Product"复制代码
  • 关键字 stages :定义Pipeline 中的各个构建阶段,并使用非关键字来定义jobs,如文件中有三个jobs的定义:build、test、deploy,且执行时也将按照此顺序执行下去。

  • Job1/ Job2 非关键字意为各个Job名称,且可用关键字 stage 来指定该 Job 对应哪个 stage 。

  • 关键字 script :每个Job 都必须有的,表示每个Job要执行的命令,主要由 GitLab Runner 执行的shell脚本。

  • 关键字 before_script 和 after_script :是定义任何 Jobs 运行前/后都会执行的命令。

  • 伪原创工具 SEO网站优化  https://www.237it.com/ 

还有其他相关关键字,可以从官网上查看。了解整个基础的过程后,就可以知道怎么去设置整个集成的过程。最关键的就是script 这部分了。

CI接入单元测试

学会了持续集成,那么再增加通过CI进行单元测试,完成自动化测试工作。

根据上面所说,script 部分主要是由gitlab runner 执行shell 脚本,所以只需要在正式上线之前进行最后一次自动化测试工作就可以。所以,可以再定义一个 stage 执行单元测试 。

stages:
  - unitTest
  
unitTest:
  stage: unitTest
  only:
    - dev
    - master
  script:
    - echo "unit test start"
    - yarn test复制代码

注意到看设置了Job.only,表示只有在dev 分支和 master 分支才会触发到相关Jobs。

未学习CI/CD之前一直都不是很了解整个过程,并且当时觉得加入单元测试是一项很难工作,无从入手。通过一番学习后,对整个CI/CD有个整体了解后就知道都是通过配置文件,并且配置文件中脚本是shell 脚本命令来完成整个工作。不仅可以实现接入单元测试,也可实现测试代码覆盖率并通过gitLab pages 显示单测的结果,甚至也是可以支持在其中进行 webhook 方式通知结果。


作者:元宇宙
链接:https://juejin.cn/post/7034547673927680014


文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐