IntelliJ IDEA本地代码覆盖后恢复原来的代码图解

下面我就来详细讲解“IntelliJ IDEA本地代码覆盖后恢复原来的代码”攻略,包含以下内容:

  1. 准备工作
  2. 操作步骤
  3. 示例说明

1. 准备工作

在进行本地代码覆盖后恢复原来的代码前,需要进行以下准备工作:

  1. 在 IntelliJ IDEA 中打开需要覆盖和恢复的项目。

  2. 在项目的 settings.gradle 中添加以下代码:

groovy
include 'buildSrc'

  1. 在项目的 build.gradle 文件中添加以下代码:

```groovy
apply plugin: 'jacoco'

jacoco {
toolVersion = '0.8.5'
}

test {
jacoco {
append = false
destinationFile = file("$buildDir/jacoco/test.exec")
}
}

task jacocoTestReport(type: JacocoReport, dependsOn: ['test']) {
reports {
html.enabled = true
}
// If the following line is commented out, html report won't be generated
// or the report will not contain all data.
executionData(test)
sourceDirectories.setFrom(project.files(project.sourceSets.main.allJava.srcDirs))
classDirectories.setFrom(project.files(project.sourceSets.main.output))
//gradle不支持kotlin项目
//sourceDirectories.setFrom(project.files(project.sourceSets.main.allSource.srcDirs))
//classpath = files(classpath.asPath.split(':').collect { file(it) })
}

tasks.withType(Test) {
jacoco {
reports {
xml.enabled = true
csv.enabled = true
}
}
}
```

2. 操作步骤

完成上述准备工作之后,接下来进行本地代码覆盖后的恢复的具体步骤如下:

  1. 在 IntelliJ IDEA 中打开需要覆盖和恢复的项目。
  2. 运行项目中的测试用例,生成覆盖数据。
  3. 在菜单栏中依次选择 Run -> Edit Configurations,打开编辑运行配置页面。
  4. 点击左侧的 Defaults -> JUnit,将 VM Options 中的参数修改为以下代码:

-javaagent:/Applications/IntelliJ\ IDEA.app/Contents/plugins/jacoco/lib/jacocoagent.jar=destfile=build/jacoco/test.exec,append=false
-Djacoco=true

注意:以上命令中,/Applications/IntelliJ IDEA.app 需要根据实际 IDE 安装路径进行修改。

  1. 在编辑运行配置页面中,点击 OK 保存配置。
  2. 点击 IntelliJ IDEA 工具栏中的 Run 按钮,或使用快捷键 Shift + F10,运行测试用例并生成覆盖数据。

在运行测试用例的过程中,代码覆盖工具 JaCoCo 会将覆盖数据保存在 build/jacoco/test.exec 文件中。

  1. 运行命令生成测试覆盖报告:

./gradlew jacocoTestReport

或者在 IntelliJ IDEA 的 Gradle 工具窗口中找到 jacocoTestReport 任务,右键点击选择 Run

生成的覆盖报告可以在 build/reports/jacoco/test/html/index.html 文件中查看。

  1. 对代码进行覆盖测试后,如果需要恢复原来的代码,可以通过以下步骤完成:

打开覆盖数据报告,找到需要覆盖的代码行,鼠标右键选择 Local History -> Show History,即可弹出版本控制窗口,查看历史修改记录。找到需要恢复的代码版本,右键选择 Revert,即可恢复到指定版本的代码。

3. 示例说明

为了更好地说明本地代码覆盖后恢复原来的代码的具体操作过程,下面给出两个示例。

示例1:

假设代码文件 Hello.java 中有以下内容:

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello, world!");
    }
}

现在,我们想为这段代码编写一个测试用例,并使用 JaCoCo 进行代码覆盖测试。

  1. 首先,我们在项目根目录下新建一个名为 src/test/java 的目录,用来存放测试用例文件。
  2. src/test/java 目录下新建一个名为 HelloTest.java 的JUnit测试类文件,编写测试代码:

```java
import org.junit.Test;

public class HelloTest {
@Test
public void testHelloWorld() {
HelloWorld.main(new String[]{});
}
}
```

  1. 运行测试用例,并生成覆盖数据。
  2. 打开项目工具栏中的 Gradle 窗口,找到 jacocoTestReport 任务,右键点击选择 Run,即可生成覆盖报告。
  3. 打开覆盖报告,找到需要修改的代码行,右键选择 Local History -> Show History,即可弹出版本控制窗口,查看历史修改记录。

示例2:

假设代码文件 Calculator.java 中有以下内容:

public class Calculator {
    public int add(int a, int b) {
        return a + b;
    }
}

现在,我们想为这段代码编写一个测试用例,并使用 JaCoCo 进行代码覆盖测试。

  1. 首先,我们在项目根目录下新建一个名为 src/test/java 的目录,用来存放测试用例文件。
  2. src/test/java 目录下新建一个名为 CalculatorTest.java 的JUnit测试类文件,编写测试代码:

```java
import org.junit.Test;

public class CalculatorTest {
@Test
public void testAdd() {
Calculator calculator = new Calculator();
int result = calculator.add(3, 4);
org.junit.Assert.assertEquals(7, result);
}
}
```

  1. 运行测试用例,并生成覆盖数据。
  2. 打开项目工具栏中的 Gradle 窗口,找到 jacocoTestReport 任务,右键点击选择 Run,即可生成覆盖报告。
  3. 打开覆盖报告,找到需要修改的代码行,右键选择 Local History -> Show History,即可弹出版本控制窗口,查看历史修改记录。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:IntelliJ IDEA本地代码覆盖后恢复原来的代码图解 - Python技术站

(0)
上一篇 2023年5月18日
下一篇 2023年5月18日

相关文章

  • 初步使用Node连接Mysql数据库

    下面是初步使用 Node 连接 MySQL 数据库的完整攻略: 准备工作 确认已经安装了 Node.js 和 MySQL 数据库 在项目中安装 mysql 模块: npm install mysql 建立连接 首先需要在 Node.js 中导入 mysql 模块并创建数据库连接,代码如下: var mysql = require(‘mysql’); var …

    database 2023年5月21日
    00
  • 阿里外包的一次面试经历分享

    阿里外包的一次面试经历分享攻略 1. 背景介绍 阿里巴巴是国内知名的互联网公司之一,旗下涉及电商、云计算、智能家居等多个领域,对于求职者来说,阿里是一个很有吸引力的目标。同时,阿里外包作为阿里巴巴的重要服务之一,也对求职者提供了大量的机会。本文将主要分享一次阿里外包的面试经历,希望对求职者有所帮助。 2. 面试准备 在进行面试之前,我们需要进行充分的准备。首…

    database 2023年5月22日
    00
  • java新特性之for循环最全的用法总结

    Java新特性之for循环最全的用法总结 常规for循环 for (int i = 0; i < 10; i++) { System.out.println(i); } 在for循环中,首先定义一个初始值i为0,然后定义一个判断语句i < 10来指定循环的终止条件,最后每次循环结束后让i自增1。上述示例代码就是利用for循环输出0到9的数字。这是…

    database 2023年5月21日
    00
  • SQL 计算两个日期之间相差的秒数、分钟数和小时数

    计算两个日期之间相差的秒数、分钟数和小时数可以使用DATEDIFF()函数和TIME_TO_SEC()函数来实现。 计算相差的秒数 计算两个日期之间相差的秒数可以使用以下SQL语句: SELECT TIMESTAMPDIFF(SECOND, ‘2022-01-01 12:00:00’, ‘2022-01-01 12:01:30’) AS diff_secon…

    database 2023年3月27日
    00
  • Centos6.6 安装Redis

    一.介绍   redis在做数据库缓存,session存储,消息队列上用的比较多   二.安装 $ yum install -y wget gcc make tcl $ wget http://download.redis.io/releases/redis-3.0.2.tar.gz $ tar zxvf redis-3.0.2.tar.gz $ cd re…

    Redis 2023年4月13日
    00
  • Nodejs 连接 mysql时报Error: Cannot enqueue Query after fatal error错误的处理办法

    首先,需要理解该错误的产生原因,即在于连接的mysql实例出现了致命错误,后续再进行查询等操作就会出现该错误。 处理该错误的方式如下: 在创建连接的时候,加上supportBigNumbers: true, 与 bigNumberStrings: true配置。 const mysql = require(‘mysql’); const connection…

    database 2023年5月18日
    00
  • linux下备份MYSQL数据库的方法

    备份MYSQL数据库是服务器管理中常用的任务之一。下面简要介绍linux环境下备份MYSQL数据库的两种方法: 方法一:使用mysqldump命令备份数据库 登录MYSQL数据库 mysql -u root -p 进入MYSQL后,使用以下命令备份数据库 mysqldump -u root -p 数据库名 > 备份文件名.sql 备份成功后,可以使用以…

    database 2023年5月22日
    00
  • Mybatis注解方式操作Oracle数据库详解

    Mybatis注解方式操作Oracle数据库详解 1. 前言 Mybatis 是一种优秀的持久化框架,可以使数据访问层代码变得简洁而有扩展性。在Mybatis中,有两种配置方式(xml映射和注解映射),其中注解配置方式简单,直观,快速,特别适合针对简单的语句进行编程。 本文主要介绍在Oracle数据库中使用 Mybatis 注解方式的详细步骤。 2. 添加依…

    database 2023年5月21日
    00
合作推广
合作推广
分享本页
返回顶部