jacoco + junit + mock 单测没有统计覆盖率问题
使用junit :直接在pom文件中直接引入:
<properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><epps-pccs.version>1.0.0</epps-pccs.version><hibernate-validator.version>4.2.0.Final</hibernate-validator.version><mybatis.version>3.0.6</mybatis.version><mybatis-spring.version>1.0.2</mybatis-spring.version><dbcp.version>1.2.2</dbcp.version><cxf-version>2.6.1</cxf-version><xstream.version>1.4.3</xstream.version><junit.version>4.8.1</junit.version>
......<dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.8.1</version><scope>test</scope></dependency>
引入mock:
<tcc.version>0.0.5</tcc.version><epps-task.version>2.0.0-SNAPSHOT</epps-task.version><mockito-all.version>2.0.2-beta</mockito-all.version><sonar.coverage.exclusions>**/basis/*,**/cache/*,**/client/*,**/exception/*,**/general/*,**/rsf/*,**/scm/*,**/service/*,**/task/*,**/uts/*</sonar.coverage.exclusions>
<dependency><groupId>org.mockito</groupId><artifactId>mockito-all</artifactId><version>${mockito-all.version}</version><scope>test</scope></dependency>
然后引入jacoco:
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.7.7.201606060606</version>
<configuration>
<skip>${jacoco.skip.instrument}</skip>
</configuration>
<executions><execution>
<id>pre-unit-test</id>
<goals><goal>prepare-agent</goal>
</goals>
<configuration>
<dataFile>${project.build.directory}/jacoco.exec</dataFile>
<propertyName>surefireArgLine</propertyName>
</configuration>
</execution>
<execution>
<id>default-instrument</id>
<goals>
<goal>instrument</goal></goals>
</execution><execution>
<id>default-restore-instrumented-classes</id>
<goals>
<goal>restore-instrumented-classes</goal></goals>
</execution>
<execution>
<id>report</id>
<goals>
<goal>report</goal></goals>
<phase>prepare-package</phase><configuration>
<dataFile>${project.build.directory}/jacoco.exec</dataFile></configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.19.1</version>
<configuration>
<systemPropertyVariables>
<jacoco-agent.destfile>${project.build.directory}/jacoco.exec</jacoco-agent.destfile>
</systemPropertyVariables>
<argLine>-noverify -XX:-UseSplitVerifier -XX:NewSize=128m -XX:MaxNewSize=512m -XX:PermSize=128m -XX:MaxPermSize=768m
${surefireArgLine}
</argLine></configuration>
</plugin>
</plugins>
对于junit 没有统计到覆盖率:
多出:
<dependency><!--<groupId>org.powermock</groupId>--><!--<artifactId>powermock-module-junit4</artifactId>--><!--<version>${powermock.version}</version>--><!--<scope>test</scope>--></dependency><dependency><!--<groupId>org.powermock</groupId>--><!--<artifactId>powermock-api-mockito</artifactId>--><!--<version>${powermock.version}</version>--><!--<scope>test</scope>--></dependency><dependency><!--<groupId>org.powermock</groupId>--><!--<artifactId>powermock-module-junit4-rule-agent</artifactId>--><!--<version>${powermock.module.rule.agent.version}</version>--><!--<scope>test</scope>--></dependency><dependency><!--<groupId>org.powermock</groupId>--><!--<artifactId>powermock-core</artifactId>--><!--<version>${powermock.version}</version>--><!--<scope>test</scope>-->
</dependency>
还有如果按模块单测,那么每一个模块都要单独引入:
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
#####################################################################################################
正常被jacoco统计的junit +mock 单元代码:
import com.alibaba.fastjson.JSONObject;
import com.***.epp.pccs.common.enums.BusinessCodeEnum;
import org.junit.Before;
import org.junit.Test;
import org.mockito.InjectMocks;
import org.mockito.MockitoAnnotations;/*** */
public class LogWrapperTest {@InjectMocksprivate LogWrapper logWrapper;@Beforepublic void initMocks() {MockitoAnnotations.initMocks(this);}@Testpublic void buildMonitorLogString_test() {JSONObject req = new JSONObject();req.put("payAmount", "123.45");LogWrapper.buildMonitorLogString(req, new JSONObject(), "1234567890", BusinessCodeEnum.DEPOSIT, "120");}}
***********************************************对于没有统计到的单测**********************************************************
pom文件里多出了testng插件:
<dependency><!--<groupId>org.testng</groupId>--><!--<artifactId>testng</artifactId>--><!--<version>6.4</version>--><!--<scope>test</scope>--></dependency>
jacoco + junit + mock 单测没有统计覆盖率问题相关推荐
- 告别加班/解放双手提高单测覆盖率之Java 自动生成单测代码神器推荐
一.背景 很多公司对分支单测覆盖率会有一定的要求,比如 单测覆盖率要达到 60% 或者 80%才可以发布. 有时候工期相对紧张,就优先开发功能,测试功能,然后再去补单元测试. 但是编写单元测试又比较浪 ...
- Maven Eclipse Junit单元测试解 + 进阶使用Mockito做service层单测(万物皆可mo)+对于异步async方法的单测
一:简介 JUnit是一个JAVA语言的单元测试框架 主要是后端写完代码可以自己测试一下功能. 二:配置 2.1 引入 在 pom文件里引入依赖包 <dependency><grou ...
- idea单测覆盖率不显示的问题
在启动配置里面增加包 包含覆盖率数据是指原始代码所在的包或者类,如果测试文件跟源文件不在一个类下,可以手动添加对应的文件目录,可以只针对某一个类进行添加,这样可以每次调试的时候,最小范围运行单测用例
- jacoco统计覆盖率最佳实践
jacoco统计覆盖率最佳实践 jacoco总结 Jacoco安装 代码覆盖率介绍 行覆盖 分支覆盖 方法覆盖 覆盖率的误区 代码覆盖率意义 覆盖率报告解析 启动jacoco agent进行插桩 ** ...
- 单测中如何mock用@Value注解注入的属性
实际项目开发中,我们经常会使用@Value注解从配置文件中注入属性值,写单侧时,在不启动容器的条件下,如何对这种属性进行mock呢?对这种情况,Spring提供了一个很好的工具类ReflectionT ...
- 研效优化实践:Python单测——从入门到起飞
作者:uniquewang,腾讯安全平台后台开发工程师 福生于微,积微成著,一行代码的精心调试,一条指令的细心验证,一个字节的研磨优化,都是影响企业研发效能工程的细节因素.而单元测试,是指针对软件中的 ...
- 单测利器——PowerMockito使用心得
PowerMockito是什么? PowerMockito是一个帮助我们快速写单测的工具,如果待测试方法中调用了其他方法或远程接口(如RPC.数据库等等),但是我们又不想在单测执行过程中真正的调用,而 ...
- Spock单测利器的写法
Spock是国外的测试框架,其设计灵感来自JUnit.Mockito.Groovy,可以用于Java和Groovy应用的测试. Spock简介 最近发现了一款写法简洁高效,一个单测方法可以测试多组测试 ...
- 从头到脚说单测——谈有效的单元测试
导语 非常幸运的是,从4月份至今,我能够全身心投入到腾讯新闻的单元测试专项任务中,从无知懵懂,到不断深入理解的过程,与开发同学互帮互助,受益匪浅.在此过程中,得到了质量总监.新闻总监和乔帮主的倾囊指导 ...
最新文章
- 转:开火,移动-大神Joel 也浮躁
- vscode中go插件配置
- Nginx负载均衡策略之least_conn
- centos7 geenplum5.x postgis开源版本编译
- java 分析excel模板_java如何读取Excel简单模板
- const变量初始化问题
- 低学历的人就不能创业了吗?
- Fiddler工具使用介绍三
- Spring Framework 常用工具类一
- php合并两个有序链表,合并两个排序的链表
- UOS系统如何给软件签名
- smtp服务器组件,本机搭建虚拟SMTP服务器教程
- 大一大学计算机考试考什么,【大学生计算机基础考题】 计算机基础大一考试题...
- GPT格式的动态磁盘文件无损地转换为基本磁盘
- 如何把google日历添加到桌面
- ckeditor使用----跳坑之旅
- mysql数据库拒绝访问的解决过程_记一次MySQL数据库拒绝访问的解决过程
- Bailian1664 Placing apples【递推+记忆化递归】
- 工业无线客户端服务器,基于4G工业路由器光伏发电无线远程监控解决方案
- Android开源项目分类
热门文章
- django+asyncio资料调研整合
- ubuntu16.04的sudo设置为免密码(注意这里不是su免密码)
- php进程守护进程,php 多进程实现守护进程的实例代码
- 计算机高新办公软件应用,OFFICEXP全国计算机信息高新技术考试办公软件应用
- c语言中if条件语句说课内容,if语句-ppt-说课--试讲-C语言.ppt
- 如何制作可以在 MaxCompute 上使用的 crcmod
- 为何2018年中国自然灾害损失大幅下降?官方回应
- Day45--js基本小结
- [雪峰磁针石博客]python网络基础工具书籍下载-持续更新
- 几种C++ std::string和std::wstring相互转换的转换方法