引言
测试项目
自己写一个简单的Spring Boot项目,上传到gitlab上。创建两个分支:master和dev
master代码:
@RestControllerpublic class DemoController { @PostMapping("check") public boolean check(@RequestParam String inputString){ return isPalindrome(inputString); } public boolean isPalindrome(String inputString) { if (inputString.length() == 0) { return true; } else { char firstChar = inputString.charAt(0); char lastChar = inputString.charAt(inputString.length() - 1); String mid = inputString.substring(1, inputString.length() - 1); return (firstChar == lastChar) && isPalindrome(mid); } }}
dev代码:
@RestControllerpublic class DemoController { @PostMapping("check") public boolean check(@RequestParam String inputString){ //return isPalindrome(inputString); return false; }// public boolean isPalindrome(String inputString) {// if (inputString.length() == 0) {// return true;// } else {// char firstChar = inputString.charAt(0);// char lastChar = inputString.charAt(inputString.length() - 1);// String mid = inputString.substring(1, inputString.length() - 1);// return (firstChar == lastChar) && isPalindrome(mid);// }// }}
其实两段代码的差别就是master的会多一点,增加一个判断一段文字是否是回文的函数。
在master分支打包后,可以用命令启动程序:
java -javaagent:D:Gitjacocojacocoagent.jar=includes=*,output=tcpserver,address=192.168.30.47,port=6300 -jar D:Gitspring-boot-demotargetspring-boot-demo-0.0.1-SNAPSHOT.jar
有同学可能问jacocoagent.jar文件哪里来。可以这里下:
https://www.jacoco.org/jacoco/
address: 是java所在电脑的IP(K8S直接用0.0.0.0), 6300是随意选的一个端口 ,不重就行。
启动后可以用postman测试一下:
我们调用了一次,所以等下生成的 告覆盖率就不为0了
插件安装方式
插件工程地址:https://github.com/AngryTester/jacoco-plugin
打包命令:mvn clean package -Dmaven.test.skip=true
通过Jenkins安装官方Jacoco插件(这一步的主要目的是安装Jacoco插件依赖的其他插件),然后删除Jenkins主目录plugins下的jacoco:
将上面打包后target目录下的jacoco.hpi复制至Jenkins主目录下plugins目录,重启Jenkins即可。
我不太喜欢用ssh这种方式pull代码,所以对项目做一点小改动。所以大家看我后面截图不要有疑惑。
创建Job
这段命令很重要,用来dump exec文件的。
mvn org.jacoco:jacoco-maven-plugin:0.8.1:dump -Djacoco.address=192.168.30.47 -Djacoco.reset=false -Djacoco.port=6300 -Djacoco.append=true
测试结果
Build一下这个job就可以看到结果
结语
我们在我们每个微服务启动时都启动一下jacocoagent。 这样我们做功能测试或者自动化测试时,不再担心我们有漏测了。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!