使用 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 Black Box Society

The Black Box Society

Frank Pasquale / Harvard University Press / 2015-1-5 / USD 35.00

Every day, corporations are connecting the dots about our personal behavior—silently scrutinizing clues left behind by our work habits and Internet use. The data compiled and portraits created are inc......一起来看看 《The Black Box Society》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具