IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> 基于IDEA的Jacoco新手使用教程(无需Maven基础) -> 正文阅读

[Java知识库]基于IDEA的Jacoco新手使用教程(无需Maven基础)

在课堂上看到老师使用jacoco进行测试代码覆盖率的检测,很多上这门课的同学可能不太熟悉,因此做一个比较简单的教程。
在此之前需要下载maven的jar包,由于IDEA自带的maven有缺陷,所以我们这里不用。
maven下载链接:https://mvnrepository.com/artifact/org.apache.maven/maven-plugin-api
下载完成以后开始配置环境变量,这里可以参考:
https://blog.csdn.net/love_caicai/article/details/82228985
配置完成环境变量以后可以通过控制台中输入 mvn -v 如果如下所示则说明配置成功(此处以mac为例)
在这里插入图片描述
一、将IDEA中的Maven替换成我们下载的maven
1、IDEA中 file(mac中是Preference)->settings->Build,Excution,Deployment->Build Tools->Maven
Maven Home directory: Maven 的安装目录
User Settings File: maven安装目录下的conf/setting.xml文件
Local Repository: 本地仓库的目录位置(自己在本地新建一个即可)
在这里插入图片描述

2、Build Tools->Maven->Runner
VM Options: archetypeCatalog=internal
JRE:对应项目所使用的jdk

在这里插入图片描述

二、
第一次创建maven项目的时候可能需要下载很多内容,所以需要一定时间的等待。

1、首先需要创建一个maven项目
记得在这里要把 Create from archetype 勾选上,才可以使用下面的模版进行创建,一般使用quickstart即可
在这里插入图片描述

2、配置文件路径
home path指向所下载的maven包
User setting 指向maven包中的conf文件夹下的settings.xml文件
Local repository 指向本地仓库,可以自己创建一个文件夹,名字叫做localRepository。

在这里插入图片描述

3、修改Maven配置文件
打开maven->conf->settings.xml文件。
在标签中添加
本地仓库的绝对路径
在这里插入图片描述
4、修改Maven的pom.xml文件
创建成功以后,项目中应该会如下图所示出现这些文件夹
在这里插入图片描述
点开其中的pom.xml文件
并用以下的内容完全替代

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.test.jacoco</groupId>
  <artifactId>testJacoco</artifactId>
  <version>0.0.1-SNAPSHOT</version>

  <name>JaCoCo Examples</name>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

    <!-- Sonar -->
    <sonar.java.coveragePlugin>jacoco</sonar.java.coveragePlugin>
    <sonar.dynamicAnalysis>reuseReports</sonar.dynamicAnalysis>
    <!-- The destination file for the code coverage report has to be set to the same value
    in the parent pom and in each module pom. Then JaCoCo will add up information in
    the same report, so that, it will give the cross-module code coverage. -->
    <sonar.jacoco.itReportPath>${project.basedir}/target/jacoco.exec</sonar.jacoco.itReportPath>
    <sonar.language>java</sonar.language>
  </properties>

  <dependencies>

<!--    <dependency>-->
<!--    <groupId>junit</groupId>-->
<!--    <artifactId>junit</artifactId>-->
<!--    <version>4.12</version>-->
<!--    <scope>test</scope>-->
<!--    </dependency>-->


    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
    </dependency>

    <dependency>
      <groupId>org.jacoco</groupId>
      <artifactId>jacoco-maven-plugin</artifactId>
      <version>0.8.7</version>
    </dependency>
    <dependency>
      <groupId>org.junit.jupiter</groupId>
      <artifactId>junit-jupiter</artifactId>
      <version>RELEASE</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.junit.jupiter</groupId>
      <artifactId>junit-jupiter-api</artifactId>
      <version>5.7.0</version>
    </dependency>
  </dependencies>
  <!-- https://mvnrepository.com/artifact/org.jacoco/jacoco-maven-plugin -->


  <build>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.jacoco</groupId>
          <artifactId>jacoco-maven-plugin</artifactId>
          <version>0.8.7</version>
        </plugin>
      </plugins>
    </pluginManagement>

    <plugins>
      <plugin>
        <groupId>org.jacoco</groupId>
        <artifactId>jacoco-maven-plugin</artifactId>
        <version>0.8.7</version>
        <executions>
          <execution>
            <id>prepare-agent</id>
            <goals>
              <goal>prepare-agent</goal>
            </goals>
          </execution>
          <execution>
            <id>report</id>
            <phase>prepare-package</phase>
            <goals>
              <goal>report</goal>
            </goals>
          </execution>
          <execution>
            <id>post-unit-test</id>
            <phase>test</phase>
            <goals>
              <goal>report</goal>
            </goals>
            <configuration>
              <dataFile>target/jacoco.exec</dataFile>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <source>1.8</source>
          <target>1.8</target>
        </configuration>
      </plugin>
    </plugins>
  </build>

</project>

5、将我们所需要测试的文件放入main与test的java文件夹下,org.example可以删除
注意:需要测试的方法需要按照junit的格式,使用@Test进行注释,并且方法的名称必须满足junit的命名格式
例如: public void testJacoco01(){}

6、完成测试文件以及所有相关java文件的导入之后,可以看到IDEA界面的最右侧有一个maven的标志:
在这里插入图片描述
点击此处的test,如果程序没有编译错误,此时在左侧的文件夹列表中会生成一个target文件夹
在这里插入图片描述

7、jacoco测试结果的文件位置为:
target/site/jacoco/index.html

使用浏览器打开即可得到测试程序对于整体项目的覆盖率。
如有遇到问题欢迎留言讨论,谢谢大家。

																																																	**From	USYD  ErikZhang**
  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-07-14 22:59:17  更:2021-07-14 23:00:03 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/17 20:18:51-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码