gitlab ci 集成gtest

gitlab的ci/cd功能为工程中的持续集成与部署带来便利,让项目快速迭代,但是也许你的公司内使用的步骤只有编译和发布,这样是没有问题(在大多数情况下)。不过ci中其实是可以集成单元测试的,这样会让程序更稳定、可靠。

集成的方法:

1.首先在仓库的根目录要有“.gitlab-ci.yml”这个文件,这个是gitlab执行ci的脚本文件是yml格式的

2.了解该文件的基本语法,以及执行ci的命令,一般执行build的命令大致为:

stages:
  - build

before_script:
  - your_before_script

docker-build:
  stage: build
  script:
    - your_docker_build_script
  after_script:
    - your_after_script
  only:
    - web
  when: manual
  tags:
    - your_runner

    web:对于使用GitLab UI中的“运行管道”按钮创建的管道。only:限制创建作业的时间;

    tags:用来构建工程的runner;

    when:manual,手动执行。

3. 集成单元测试gtest:

    其实就是在stages里加上test项

stages:
  - test
  - build

before_script:
  - your_before_script

unit-test:
  stage: test
  script:
    - docker build -f ./Dockerfile_test .
  only:
    - web
  when: manual
  tags:
    - your_runner

docker-build:
  stage: build
  script:
    - your_docker_build_script
  after_script:
    - your_after_script
  only:
    - web
  when: manual
  tags:
    - your_runner

核心语句是“- docker build -f ./Dockerfile_test .”, 因为我们的工程使用docker构建部署的,在build时会默认用Dockerfile,所以增加的单元测试用了另一份:Dockerfile_test,文件里将make命令改成“make test”,并删除了make后的安装等步骤,这些在unit test里不需要。

gitlab ci 集成gtest_第1张图片

之后会有两个需要运行的阶段:一个“uint-test”,一个“docker-build”,理论上是可以自动运行,这里我们为了演示用的手动方式。

逐步执行即可:

gitlab ci 集成gtest_第2张图片

上图是gtest失败的示例。

gitlab ci 集成gtest_第3张图片

上图是gtest通过的示例。

gtest执行通过则可继续执行构建步骤了。

你可能感兴趣的:(linux编程开发,c\c++编程基础,单元测试,gitlab-ci,docker)