使用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 单测没有统计覆盖率问题相关推荐

  1. 告别加班/解放双手提高单测覆盖率之Java 自动生成单测代码神器推荐

    一.背景 很多公司对分支单测覆盖率会有一定的要求,比如 单测覆盖率要达到 60% 或者 80%才可以发布. 有时候工期相对紧张,就优先开发功能,测试功能,然后再去补单元测试. 但是编写单元测试又比较浪 ...

  2. Maven Eclipse Junit单元测试解 + 进阶使用Mockito做service层单测(万物皆可mo)+对于异步async方法的单测

    一:简介 JUnit是一个JAVA语言的单元测试框架 主要是后端写完代码可以自己测试一下功能. 二:配置 2.1 引入 在 pom文件里引入依赖包 <dependency><grou ...

  3. idea单测覆盖率不显示的问题

    在启动配置里面增加包 包含覆盖率数据是指原始代码所在的包或者类,如果测试文件跟源文件不在一个类下,可以手动添加对应的文件目录,可以只针对某一个类进行添加,这样可以每次调试的时候,最小范围运行单测用例

  4. jacoco统计覆盖率最佳实践

    jacoco统计覆盖率最佳实践 jacoco总结 Jacoco安装 代码覆盖率介绍 行覆盖 分支覆盖 方法覆盖 覆盖率的误区 代码覆盖率意义 覆盖率报告解析 启动jacoco agent进行插桩 ** ...

  5. 单测中如何mock用@Value注解注入的属性

    实际项目开发中,我们经常会使用@Value注解从配置文件中注入属性值,写单侧时,在不启动容器的条件下,如何对这种属性进行mock呢?对这种情况,Spring提供了一个很好的工具类ReflectionT ...

  6. 研效优化实践:Python单测——从入门到起飞

    作者:uniquewang,腾讯安全平台后台开发工程师 福生于微,积微成著,一行代码的精心调试,一条指令的细心验证,一个字节的研磨优化,都是影响企业研发效能工程的细节因素.而单元测试,是指针对软件中的 ...

  7. 单测利器——PowerMockito使用心得

    PowerMockito是什么? PowerMockito是一个帮助我们快速写单测的工具,如果待测试方法中调用了其他方法或远程接口(如RPC.数据库等等),但是我们又不想在单测执行过程中真正的调用,而 ...

  8. Spock单测利器的写法

    Spock是国外的测试框架,其设计灵感来自JUnit.Mockito.Groovy,可以用于Java和Groovy应用的测试. Spock简介 最近发现了一款写法简洁高效,一个单测方法可以测试多组测试 ...

  9. 从头到脚说单测——谈有效的单元测试

    导语 非常幸运的是,从4月份至今,我能够全身心投入到腾讯新闻的单元测试专项任务中,从无知懵懂,到不断深入理解的过程,与开发同学互帮互助,受益匪浅.在此过程中,得到了质量总监.新闻总监和乔帮主的倾囊指导 ...

最新文章

  1. 转:开火,移动-大神Joel 也浮躁
  2. vscode中go插件配置
  3. Nginx负载均衡策略之least_conn
  4. centos7 geenplum5.x postgis开源版本编译
  5. java 分析excel模板_java如何读取Excel简单模板
  6. const变量初始化问题
  7. 低学历的人就不能创业了吗?
  8. Fiddler工具使用介绍三
  9. Spring Framework 常用工具类一
  10. php合并两个有序链表,合并两个排序的链表
  11. UOS系统如何给软件签名
  12. smtp服务器组件,本机搭建虚拟SMTP服务器教程
  13. 大一大学计算机考试考什么,【大学生计算机基础考题】 计算机基础大一考试题...
  14. GPT格式的动态磁盘文件无损地转换为基本磁盘
  15. 如何把google日历添加到桌面
  16. ckeditor使用----跳坑之旅
  17. mysql数据库拒绝访问的解决过程_记一次MySQL数据库拒绝访问的解决过程
  18. Bailian1664 Placing apples【递推+记忆化递归】
  19. 工业无线客户端服务器,基于4G工业路由器光伏发电无线远程监控解决方案
  20. Android开源项目分类

热门文章

  1. django+asyncio资料调研整合
  2. ubuntu16.04的sudo设置为免密码(注意这里不是su免密码)
  3. php进程守护进程,php 多进程实现守护进程的实例代码
  4. 计算机高新办公软件应用,OFFICEXP全国计算机信息高新技术考试办公软件应用
  5. c语言中if条件语句说课内容,if语句-ppt-说课--试讲-C语言.ppt
  6. 如何制作可以在 MaxCompute 上使用的 crcmod
  7. 为何2018年中国自然灾害损失大幅下降?官方回应
  8. Day45--js基本小结
  9. [雪峰磁针石博客]python网络基础工具书籍下载-持续更新
  10. 几种C++ std::string和std::wstring相互转换的转换方法