使用 Maven 运行单元测试

栏目: 编程工具 · 发布时间: 6年前

内容简介:Gitlab 除了基本的版本管理功能之外,还提供了很有用的持续集成能力,简单的在项目根目录中编写一段Gitlab CI/CD 是 Gitlab 的一个组件,它利用 Gitlab Runner 来执行具体的构建任务。Gitlab Runner 和 Gitlab 主程序一样,提供了 Helm chart 用于进行安装,同样可以用

Gitlab 除了基本的版本管理功能之外,还提供了很有用的持续集成能力,简单的在项目根目录中编写一段 .gitlab-ci.yml ,就能够让 Gitlab 按照其中的指示完成持续集成的工作。

Gitlab CI/CD 是 Gitlab 的一个组件,它利用 Gitlab Runner 来执行具体的构建任务。

Gitlab Runner 和 Gitlab 主程序一样,提供了 Helm chart 用于进行安装,同样可以用 helm fetch 下载 Chart 进行定制和渲染:

helm fetch --untar gitlab/gitlab-runner

根据官方文档介绍,Runner 的安装有两个必要参数:

gitlabUrl
runnerRegistrationToken

另外还有一个即将用到的重要参数: runners.image 这个参数可以用来指定 Runner 的基础镜像,以满足不同环节中对 Runner 的需求。

例如为了构建 Java 应用,我们创建一个 Maven 的 Runner。Gitlab 地址我们已经知道了,接下来获取一个 Token,用浏览器打开 /admin/runners ,可以查看:

使用 Maven 运行单元测试

我们使用这个 Token,创建一个基于 maven:alpine 的 Runner:

$ helm template gitlab-runner \
--namespace gitlab \
--name java \
--set gitlabUrl="https://gitlab.microservice.rocks" \
--set runnerRegistrationToken="xgX4QEt8gklFGSOFu0FURTzfvticEQmqaa3cnosMmoxc1nacYSIMBniRmBgACn19" \
--set rbac.create=true \
--set runners.image="maven:alpine" \
--set runners.tags="java\,maven" \
--set runners.privileged=true | kubectl appy -f
secret/java-gitlab-runner created
configmap/java-gitlab-runner created
serviceaccount/java-gitlab-runner created
deployment.extensions/java-gitlab-runner created
role.rbac.authorization.k8s.io/java-gitlab-runner created
rolebinding.rbac.authorization.k8s.io/java-gitlab-runner created

创建成功之后,打开页面 /admin/runners ,会看到其中列出了我们新建的 Runner:

使用 Maven 运行单元测试

点击 Runner ID,可以看到详细信息,也可以进行修改。

Runner 运行起来之后,我们可以尝试建立一个项目,使用 Runner 来针对每次提交,运行一次单元测试。

访问 projects/new 创建一个新项目,命名为 sample

使用 Maven 运行单元测试

创建完成之后,进入项目的主页面:

使用 Maven 运行单元测试

这里点击 clone 按钮,会看到弹出的项目 git 地址,我们使用这个地址对项目进行初始化。

$ git clone git@gitlab.microservice.rocks:root/sample.git
正克隆到 'sample'...
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Total 3 (delta 0), reused 0 (delta 0)
接收对象中: 100% (3/3), 完成.

这里我们使用来自 Junit 5 Sample 中的 Maven 示例来尝试 CI。

$ cd sample
$ wget https://github.com/junit-team/junit5-samples/archive/master.zip
...
$ unzip master
$ mv junit5-samples-master/junit5-jupiter-starter-maven/* .
$ rm master.zip
$ rm -Rf junit5-samples-master

接下来创建如下内容的文件,命名为 .gitlab-ci.yaml

stages:
  - scan
  - build
job unit:
  stage: scan
  tags:
    - maven
  script:
    - mvn test

Git 添加并提交,返回浏览器,查看项目首页,会发现多出一行内容:

这表示项目的 CICD 正在运行。稍候片刻,浏览 root/sample/pipelines ,会看到执行的 Pipeline 列表,我们最近的提交,Pipeline 结果已经显示为成功,点击后能够看到每个 Job 的执行记录:

使用 Maven 运行单元测试

如果我们修改一下测试案例 src/test/java/com/example/project/CalculatorTests.java ,把其中的 34 行修改为 1011 或者其它的错误结果,就会看到测试失败的情况。

如果新建分支,并在分支中修复测试案例的话,会在 MR 中看到单元测试的结果,帮助管理员判断 Merge Request 的合并请求是否合理:

使用 Maven 运行单元测试


以上所述就是小编给大家介绍的《使用 Maven 运行单元测试》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

The Web Designer's Idea Book, Vol. 2

The Web Designer's Idea Book, Vol. 2

Patrick McNeil / How / 2010-9-19 / USD 30.00

Web Design Inspiration at a Glance Volume 2 of The Web Designer's Idea Book includes more than 650 new websites arranged thematically, so you can easily find inspiration for your work. Auth......一起来看看 《The Web Designer's Idea Book, Vol. 2》 这本书的介绍吧!

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

MD5 加密
MD5 加密

MD5 加密工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换