赞
踩
poml集成junit单元测试
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
创建个简单cacul java文件
package sample;
public class CaCul {
public int add(int a, int b) {
int c = a + b;
return c;
}
public int sub(int a, int b) {
int c = a - b;
return c;
}
public int mul(int a, int b) {
return a * b;
}
public int div(int a, int b) {
return a / b;
}
}
在test目录下创建个test测试文件
import org.junit.jupiter.api.Test;
import sample.CaCul;
public class CoverTest {
@Test
public void test() throws InterruptedException {
CaCul mulq = new CaCul();
int aa = mulq.mul(2, 3);
System.out.println("aa"+aa);
// Thread.sleep(Integer.MAX_VALUE);
}
}
先确保test文件调试成功
编辑配置
选择jacoco覆盖率工具,idea默认自带了jacoco工具
从下图可以看到结果覆盖率数据
点击执行命令可以看到idea 执行的,自带了jacoco agent
将test文件下的该行代码注释打开
Thread.sleep(Integer.MAX_VALUE);
再次点击执行
使用java -jar arthas-boot.jar(arthas 是java的开源java 诊断工具,用法自行搜索)
如果报错则执行:java -jar arthas-boot.jar --telnet-port 9998 --http-port -1
这里选择输入3
然后
执行反编译命令
jad sample.Cacul
可以看到反编译后的CaCul 里集成jacoco代码,基本上就是通过布尔值去判断是否代码被执行,看似简单,实际更为复杂的是ASM的操作!大家可以自行搜索ASM
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。