下面我就来详细讲解“IntelliJ IDEA本地代码覆盖后恢复原来的代码”攻略,包含以下内容:
- 准备工作
- 操作步骤
- 示例说明
1. 准备工作
在进行本地代码覆盖后恢复原来的代码前,需要进行以下准备工作:
-
在 IntelliJ IDEA 中打开需要覆盖和恢复的项目。
-
在项目的 settings.gradle 中添加以下代码:
groovy
include 'buildSrc'
- 在项目的 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. 操作步骤
完成上述准备工作之后,接下来进行本地代码覆盖后的恢复的具体步骤如下:
- 在 IntelliJ IDEA 中打开需要覆盖和恢复的项目。
- 运行项目中的测试用例,生成覆盖数据。
- 在菜单栏中依次选择
Run -> Edit Configurations
,打开编辑运行配置页面。 - 点击左侧的
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 安装路径进行修改。
- 在编辑运行配置页面中,点击
OK
保存配置。 - 点击 IntelliJ IDEA 工具栏中的
Run
按钮,或使用快捷键Shift + F10
,运行测试用例并生成覆盖数据。
在运行测试用例的过程中,代码覆盖工具 JaCoCo 会将覆盖数据保存在 build/jacoco/test.exec
文件中。
- 运行命令生成测试覆盖报告:
./gradlew jacocoTestReport
或者在 IntelliJ IDEA 的 Gradle 工具窗口中找到 jacocoTestReport
任务,右键点击选择 Run
。
生成的覆盖报告可以在 build/reports/jacoco/test/html/index.html
文件中查看。
- 对代码进行覆盖测试后,如果需要恢复原来的代码,可以通过以下步骤完成:
打开覆盖数据报告,找到需要覆盖的代码行,鼠标右键选择 Local History -> Show History
,即可弹出版本控制窗口,查看历史修改记录。找到需要恢复的代码版本,右键选择 Revert
,即可恢复到指定版本的代码。
3. 示例说明
为了更好地说明本地代码覆盖后恢复原来的代码的具体操作过程,下面给出两个示例。
示例1:
假设代码文件 Hello.java
中有以下内容:
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, world!");
}
}
现在,我们想为这段代码编写一个测试用例,并使用 JaCoCo 进行代码覆盖测试。
- 首先,我们在项目根目录下新建一个名为
src/test/java
的目录,用来存放测试用例文件。 - 在
src/test/java
目录下新建一个名为HelloTest.java
的JUnit测试类文件,编写测试代码:
```java
import org.junit.Test;
public class HelloTest {
@Test
public void testHelloWorld() {
HelloWorld.main(new String[]{});
}
}
```
- 运行测试用例,并生成覆盖数据。
- 打开项目工具栏中的
Gradle
窗口,找到jacocoTestReport
任务,右键点击选择Run
,即可生成覆盖报告。 - 打开覆盖报告,找到需要修改的代码行,右键选择
Local History -> Show History
,即可弹出版本控制窗口,查看历史修改记录。
示例2:
假设代码文件 Calculator.java
中有以下内容:
public class Calculator {
public int add(int a, int b) {
return a + b;
}
}
现在,我们想为这段代码编写一个测试用例,并使用 JaCoCo 进行代码覆盖测试。
- 首先,我们在项目根目录下新建一个名为
src/test/java
的目录,用来存放测试用例文件。 - 在
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);
}
}
```
- 运行测试用例,并生成覆盖数据。
- 打开项目工具栏中的
Gradle
窗口,找到jacocoTestReport
任务,右键点击选择Run
,即可生成覆盖报告。 - 打开覆盖报告,找到需要修改的代码行,右键选择
Local History -> Show History
,即可弹出版本控制窗口,查看历史修改记录。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:IntelliJ IDEA本地代码覆盖后恢复原来的代码图解 - Python技术站