如何使用eclemma插件_如何集成和使用EclEmma插件来获得良好的Junit覆盖率

如何使用eclemma插件

你好朋友,

如果编写好的代码很重要,那么编写覆盖所有业务逻辑的优良Junit测试用例也同样重要。通过编写覆盖业务逻辑的Junit测试用例,我们实际上确保代码的每种方法都能正常工作按照预期进行,因此减少了在软件开发的后期阶段中获取错误的机会。

在本教程中,我们将看到如何使用EclEmma插件来检查Java代码的代码覆盖率,从而可以确保通过Junit测试用例具有良好的覆盖率。

第1步 :

转到以下链接:

https://www.eclemma.org/

第2步 :

单击左侧菜单上的安装->下载选项。

第三步:

右键单击最顶部(最新)链接(在撰写本文时,它是“ eclemma-3.1.2.zip”),然后将Zip保存在您的计算机上。

第4步 :

将zip提取到您选择的相同位置。

步骤5:

复制提取的文件夹并转到eclipse文件夹(安装了eclipse的位置),然后将此提取的文件夹粘贴到eclipse文件夹中的dropins文件夹中。

步骤6:

重新启动Eclipse。

步骤7:

右键单击项目文件夹,然后选择Coverage As-> JUnit Test,然后单击Coverage按钮,它将运行所有测试用例并检查覆盖率。

现在,因为在此阶段,我们的服务层代码中没有任何测试用例,所以我们获得了0.0%的覆盖率,并且所有代码行都显示为红色,这意味着Junit测试中未覆盖这些行。

一般来说 :

如果看到绿色,则表示Junit测试中覆盖了所有这些线条。

如果看到红色,则表示Junit测试未覆盖所有这些线。

如果看到黄色,则表示您的测试已经通过了这些行,但并未涵盖所有测试用例。

接下来,我们将创建一个Spring Boot项目,在其中添加一些代码,然后逐步编写测试用例,并查看EclEmma插件如何提供代码覆盖率。

第八步:

让我们通过创建一个简单的名称为“ eclemma”的Spring Boot项目来了解它的工作原理。请按照我的教程“ 如何使用Spring Initializer创建Spring Boot项目来创建Spring Boot项目”。

步骤9:

在新创建的项目中,按照以下屏幕快照创建具有名称的包和类

第十步:

这是CalculatorService的源代码

 package com.blogspot.javasolutionsguide.eclmma.service;  /** * @author JavaSolutionsGuide * */  public interface CalculatorService { int add( int a , int b);  int subtract( int a, int b);  } 
 <br> 
 <br> 
 <br> 

这是CalcualtorServiceImpl的源代码

 package com.blogspot.javasolutionsguide.eclemma.service.impl;  /** * @author javaSolutionsGuide * */  public class CalculatorServiceImpl {  public int add( int a , int b) { int c = a + b; return c; } public int subtract( int a, int b) { int c = a - b; return c; }  } 

步骤11:

因此,首先我们将只为add()方法编写测试用例,然后运行Eclemma coverage

这是add()方法的JUnit测试用例的代码:

 package com.blogspot.javasolutionsguide.eclEmma.service.impl;  import org.junit.Assert;  import org.junit.Test;  import org.junit.runner.RunWith;  import org.springframework.beans.factory.annotation.Autowired;  import org.springframework.boot.test.context.SpringBootTest;  import org.springframework.test.context.junit4.SpringRunner;  import com.blogspot.javasolutionsguide.eclemma.service.impl.CalculatorServiceImpl;  /** * @author JavaSolutionsGuide * */  @RunWith (SpringRunner. class )  @SpringBootTest (classes = {CalculatorServiceImpl. class })  public class CalculatorServiceImplTest {  @Autowired private CalculatorServiceImpl calculatorService;   @Test public void add_for_givenTwoInteger_shouldReturn_sumOfTwo() { Assert.assertEquals( "Test case to check if add returns sum of two give positive numbers" , 3 , calculatorService.add( 1 , 2 )); }   } 
 <br> 
 <br> 
 <br> 

第十二步:

现在,让我们再次运行EclEmma Coverage并查看结果:

可以看到,CalculatorServiceImpl类的覆盖率从0.0%增加到60%,并且运行覆盖率后,add()方法的代码行现在变为绿色,这意味着这些行已被Junit测试覆盖。

步骤13:

同样,我们将为减法编写所有测试用例并查看覆盖率。

在CalculatorServiceImplTest.java中添加以下测试用例:

 @Test  public void subtract_for_givenTwoInteger_shouldReturn_differenceOfTwo() { 
 Assert.assertEquals( "Test case to check if subtract returns sum of two give positive numbers" , 1 , calculatorService.subtract( 2 , 1 ));  } 

如我们现在所见,CalculatorServiceImpl类的覆盖率是100%。

摘要

因此,在本教程中,我们学习了如何使用EclEmma插件查看您代码的Junit测试覆盖率。基于Junit代码覆盖率报告,我们可以找出Junit覆盖了我们代码的哪些部分,以及仍然左,然后我们可以为未发现的代码行编写更多的测试用例,这将确保我们已通过Junit涵盖了所有必需的代码行,从而提高了代码质量。

如果您喜欢阅读本文,请与您认为有帮助的朋友,同事分享。

翻译自: https://www.javacodegeeks.com/2019/08/integrate-use-eclemma-plugin-having-good-junit-coverage.html

如何使用eclemma插件

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/331963.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java 相关术语

【0】README 0.1&#xff09; 本文转自 core java volume 1&#xff0c;仅供了解Java 的相关术语&#xff0c;包括像JDK、JRE等 &#xff1b;而且我感觉&#xff0c;了解了这些过后&#xff0c;你会更懂 Java&#xff0c; 更热爱它&#xff1b; 【2】Java术语 2.1&#xff09;…

一般试卷的纸张大小是多少_pdf试卷怎么打印在A3纸上

一般的PDF试卷的纸张大小都是A4大小&#xff0c;没有现成A3大小Word文档的试卷时&#xff0c;需要将PDF试卷转换Word文档之后进行排版&#xff0c;如何实现这一操作呢&#xff1f;请接着往下学习吧~一、将试卷的PDF格式转换为Word1.进入PDF快转官网&#xff0c;点击下载按钮下载…

设置 JDK环境变量(Windows)

【0】README 0.1&#xff09; 本文转自 core java volume 1&#xff0c;旨在说明如何设置 JDK环境变量&#xff0c;以及为什么要设置的问题&#xff1b;【1】JDK目录树 Attention&#xff09;就Java 而言&#xff0c; docs 和 src 是两个最有用的子目录&#xff1a;因为 docs …

光流法测试代码_高效的企业测试-工作流和代码质量(4/6)

光流法测试代码本文的这一部分将讨论在开发过程中拥有有效工作流程的影响&#xff0c;以及适当的测试代码质量如何使我们能够创建可维护的测试&#xff0c;尤其是对于复杂项目。 开发工作流程和管道 编程是一项流程活动&#xff0c;我们开发人员应该对保持工作流程高效和缩短…

水泵怎么做_泳池设备日常怎么维护和保养?

点击上方“蓝字”&#xff0c;关注我们.●电机突然停止运转怎么办&#xff1f;1.检查电路和电线接口等。2.检查输送到电机的电压是否过低(通常由于电源线太小而引致的电流不足)。3.检查是否有过载而引起电流过大。注&#xff1a;Hayward 水泵的单相电机有自动过热保护装置。该装…

鸡肉部位英文对照_鸡肉和鸡蛋–测试前解决Spring属性

鸡肉部位英文对照考虑一个负责进行远程调用和获取详细信息的服务类&#xff1a; ... public class CitiesService { private final WebClient.Builder webClientBuilder; private final String baseUrl; public CitiesService( WebClient.Builder webClientBuilder, Value ( &…

git pull忽略指定文件_Git忽略提交规则

在使用Git的过程中&#xff0c;我们喜欢有的文件比如日志&#xff0c;临时文件&#xff0c;编译的中间文件等不要提交到代码仓库&#xff0c;这时就要设置相应的忽略规则&#xff0c;来忽略这些文件的提交。简单来说一个场景&#xff1a;在你使用git add .的时候&#xff0c;遇…

lombok var_使用var,Lombok和Fluxtion轻松处理事件

lombok var介绍 在本文中&#xff0c;我将结合使用Lombok和Fluxtion这两种产品&#xff0c;以展示工具如何在减少代码编写和交付时间的同时提高代码的可读性。 使用Java 10中的var可以进一步改善这种情况。 产品和var都在构建时使用推断来加速开发。 Fluxtion的精神是最大程度…

更换mysql_安利给你,关于MySQL字符集乱码与解决方案

推荐阅读&#xff1a;闭关修炼21天&#xff0c;“啃完”283页pdf&#xff0c;我终于4面拿下字节跳动offer肺炎在家“闭关”&#xff0c;阿里竟发来视频面试&#xff0c;4面顺利拿下offer字符集是一套符号和编码的规则&#xff0c;不论是在oracle数据库还是在mysql数据库&#x…

api自动化_如何在不增加人员的情况下自动化API安全程序

api自动化在这篇文章中&#xff0c;我们将撰写一篇综合文章&#xff0c;内容涉及如何在不增加人员的情况下自动执行API安全程序。 在现代世界中&#xff0c;数据对于提供者和消费者都至关重要。 数据科学的出现证明了这一事实。 对于某些组织&#xff0c;整个业务模型是建立在信…

kali用x-shell连接_良心国产工具,比Xshell好用还免费!

使用或维护Linux系统的都知道&#xff0c;我们日常对服务器的操作&#xff0c;一般都会借助SSH工具远程登录到服务器之后进行操作。常用的SSH工具有不少&#xff0c;比如&#xff1a;Xshell、Putty、SSH Secure Shell Client、secureCRT等等。民工哥使用过其中两种secureCRT和X…

ibm liberty_使用Open Liberty的开发模式最大程度地缩短周转时间

ibm liberty我上传了一个视频&#xff0c;其中显示了如何在编写部署在Open Liberty上的Enterprise Java应用程序时减少周转时间。 Maven插件的liberty:dev目标监视文件更改并立即应用更改&#xff0c;而无需重建整个部署工件。 我将展示在更改源代码&#xff0c;配置&#xff…

vue 分模块打包 脚手架_一步步从头搭建 Vue 开发环境

前言由于是工具&#xff0c;很可能你看到的时候有些工具包已经升级了&#xff0c;会有一些报错&#xff1b;这个你就需要自己探索了。工具的版本node: v10.16.0npm: v6.9.0babel: 7.5.5webpack: 4.38.0入题提醒&#xff1a;在我们开始之前&#xff0c;你先检查下你相关工具的包…

stomp java客户端_Stomp-Spring服务器端的Web套接字Java客户端

stomp java客户端问题&#xff1a; 为了分析问题&#xff0c;我不得不编写一个简单的Java Web套接字客户端站点代码&#xff0c;并使用基于stomp的Web套接字代理连接到服务器端基于Spring的应用程序。 解决方案&#xff1a; pom.xml <?xml version"1.0" encodi…

tf.metrics._将指标标签与MicroProfile Metrics 2.0一起使用

tf.metrics.从我们的应用程序发出的与业务相关的度量标准可能包含要为其测量特定度量标准的参数&#xff08;即标签或标签 &#xff09;。 从MicroProfile Metrics 2.0开始&#xff0c;可以使用API​​将标签分配给特定的指标。 声明式方法 假设我们有以下资源&#xff1a; P…

ppt课堂流程图_除了直线能设计PPT,没想到曲线也实用,太赞了!

前几天在分享PPT设计的方法时&#xff0c;收到反馈&#xff0c;问这种曲线是如何设计以及怎么用&#xff1f;其实对于曲线&#xff0c;如果用好了比直线更加有效果&#xff0c;曲线本身自带动态效果&#xff0c;看一下。除此之外&#xff0c;曲线不仅可以用在PPT中&#xff0c;…

算法分析

【0】README 0.1&#xff09; 本文总结于 数据结构与算法分析&#xff1b;旨在了解 算法分析涉及到的数学基础、时间复杂度分析法则、和其它的一些法则 和 结论&#xff1b; 【1】 数学基础 1.1&#xff09;本书将使用以下4个定义&#xff1a; 对上述定义的分析&#xff0…

java文件端点续传效果图_Java单依赖性Dockerized HTTP端点

java文件端点续传效果图在本文中&#xff0c;我们将创建一个基于Java的HTTP端点&#xff0c;使用它创建一个可执行jar&#xff0c;将其打包在Docker中并立即在本地运行。 本文面向初学者&#xff0c;他们想要寻找一个简单的演练来在Docker中运行Java应用程序。 描述Dockerize…

立镖机器人浙江_立镖在美国获2020 NextGen供应链解决方案奖

Tompkins Robotics荣获2020 NextGen供应链解决方案提供商奖汤普金斯国际被《供应链管理评论》指定为机器人技术类获奖者2020年3月20日消息Tompkins International的业务部门 Tompkins Robotics被选为第二届年度NextGen供应链奖的获得者。汤普金斯机器人技术公司是《供应链管理…

final 实例域+final类+final方法(阻止继承)

【0】README 0.1&#xff09;本文描述源代码均 转自 core java volume 1&#xff0c; 旨在理清 “final 实例域”&#xff1b; 0.2&#xff09; 最后还增加了 阻止继承 的内容&#xff0c;涵盖了final类final方法&#xff1b; 0.3&#xff09; 引入了 内联 以及 即时编译器对…