首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Jenkins单元测试(上)

Jenkins单元测试(上)

原创
作者头像
陈不成i
修改2021-06-04 18:05:22
修改2021-06-04 18:05:22
2K0
举报
文章被收录于专栏:ops技术分享ops技术分享

一.简介

每种编程语言都有自己的单元测试框架。执行单元测试的工作一般由构建工具来完成。Jenk-ins做的只不过是执行这些构建工具的单元测试命令,然后对测试报告进行收集,并呈现。

Jenkins并不会自动帮我们写单元测试,写单元测试还是要靠人。为什么要这样说呢?因为笔者发现,不少人认为Jenkins的自动化测试是指Jenkins代替人自动写测试。

二.单元测试

JUnit

JUnit是一个Java语言的单元测试框架,由Kent Beck和ErichGamma创建。当执行maven test命令时,Maven会执行测试阶段(包括单元测试),然后生成测试报告。

收集并展示JUnit测试报告的步骤如下: 1.安装Jenkins JUnit插件,搜junit

2.在Jenkins中加入junit步骤,通常将步骤放在post always中,因为当测试不通过时,我们依然可以收集到测试报告

  1. post {
  2. always {
  3. junit testResults: "**/target/surefire-reports/*.xml"
  4. }
  5. }

当pipeline运行结束后,在构建页的左边菜单栏及右边详情下都会多出一个链接:Test Result

3.单机“Test Result”进入,可以看到测试报告的详细信息

junit步骤的testResults参数支持Ant风格路径表达式。**/targetlsurefire-reports/*.xml表示只要是target/surefire-reports目录下的XML文件就会被当作JUnit测试报告处理,而不论target在哪个层级的目录下

JacoCo

JUnit只是方便我们写单元测试的一个框架,但是并没有告诉我们有多少代码被测试覆盖到了。而JaCoCo填补了这一空白。JaCoCo是一个免费的Java代码覆盖率的库,能帮助我们检测出代码覆盖率,并输出覆盖率报告。

JaCoCo提供了以下几个维度的覆盖率分析。

  • 指令覆盖率( Instruction Coverage )
  • 分支覆盖率( Branch Coverage )
  • 圈复杂度覆盖率( Cyclomatic Complexity Coverage )
  • 行覆盖率( Line Coverage )
  • 方法覆盖率( Method Coverage )
  • 类覆盖率( Class Coverage )

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一.简介
  • 二.单元测试
    • JUnit
    • JacoCo
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档