Junit+ant+JaCoCo集成使用
接上文,本文主要介绍Junit+ant+JaCoCo集成使用
1、工具的下载上传
需要的工具有:
apache-ant-1.10.5-bin.tar
apache-tomcat-8.0.50.tar
jacoco-0.8.4-20190222.010339-7.zip
下载jacoco上传到到具体服务器:
也可以到官网下载:https://www.eclemma.org/jacoco/
下载tomcat上传到服务器:https://tomcat.apache.org/
下载ant上传到服务器:http://ant.apache.org/bindownload.cgi
上传到具体的服务器,目录如下:
2、解压配置环境变量
tar -xvf apache-tomcat-8.0..tar.gz
tar -xvf apache-tomcat-8.0..tar
unzip jacoco-0.8.-20190222.010339-.zip
2.1、设置用户环境变量:输入命令:vim ~/.bashrc,有的环境是vim ~/.bash_profile,打开文件,输入ant需要的环境变量;如下内容:
ANT_HOME=/home/antjacocolinux/apache-ant-1.10.
PATH=$ANT_HOME/bin:$PATH
export PATH ANT_HOME
2.2 退出并保存:esc => shift + : => wq => 回车,设置环境变量后必须使命令生效!!再输入命令使之生效:source ~/.bash_profile
修改apache-tomcat-8.0.50目录下bin文件夹下的catalina.sh的JAVA_OPTS配置,如图新增:
JAVA_OPTS="$JAVA_OPTS -javaagent:/home/antjacocolinux/jacoco-0.8.4/lib/jacocoagent.jar=includes=*,output=tcpserver,append=true,port=6101,address=*"
3、准备好ant项目,修改build.xml配置:
创建一个java工程,编写Calculator类
public class Calculator {
public int evaluate(String expression) {
int sum = ;
for (String summand: expression.split("\\+"))
sum += Integer.valueOf(summand);
return sum;
} public int missAdd(int a, int b) {
return a + b;
} public boolean beyondZero(int v) {
if (v > ) {
return true;
} else {
return false;
}
}
}
创建单元测试CalculatorTest 类
import static org.junit.Assert.assertEquals;
import org.junit.Test; public class CalculatorTest {
@Test
public void evaluatesExpression() {
Calculator calculator = new Calculator();
int sum = calculator.evaluate("1+2+3");
assertEquals(, sum);
} @Test
public void testChoose() {
Calculator calculator = new Calculator();
assertEquals(true, calculator.beyondZero());
}
}
修改build.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<project name="junit-example" default="rebuild" xmlns:jacoco="antlib:org.jacoco.ant">
<description>
这是一个简单的Demo,用来演示junit+ant+Jacoco
</description>
<property name="main.build.dir" value="build/main"/>
<property name="main.src.dir" value="src/main/java"/>
<property name="test.build.dir" value="build/test"/>
<property name="test.src.dir" value="src/test/java"/>
<property name="result.dir" location="./target" />
<property name="result.report.dir" location="${result.dir}/site/jacoco" />
<property name="result.exec.file" location="${result.dir}/jacoco.exec" /> <taskdef uri="antlib:org.jacoco.ant" resource="org/jacoco/ant/antlib.xml">
<classpath path="lib/jacocoant.jar" />
</taskdef> <target name="clean">
<delete dir="${result.dir}" />
<delete dir="build" />
</target> <path id="classpath.test">
<pathelement location="lib/junit-4.12.jar"/>
<pathelement location="lib/hamcrest-core-1.3.jar"/>
<pathelement location="${main.build.dir}"/>
</path> <target name="compile">
<mkdir dir="${main.build.dir}"/>
<javac srcdir="${main.src.dir}" destdir="${main.build.dir}" debug="true" includeantruntime="false"/>
</target> <target name="test-compile" depends="compile">
<mkdir dir="${test.build.dir}"/>
<javac srcdir="${test.src.dir}" destdir="${test.build.dir}" includeantruntime="false">
<classpath refid="classpath.test"/>
</javac>
</target> <target name="test" depends="test-compile">
<jacoco:coverage destfile="${result.exec.file}">
<junit printsummary="yes" haltonfailure="yes" fork="true" forkmode="once">
<classpath>
<path refid="classpath.test"/>
<pathelement location="${test.build.dir}"/>
</classpath>
<formatter type="brief" usefile="false" />
<batchtest>
<fileset dir="${test.src.dir}" includes="**/*Test.java" />
</batchtest>
</junit>
</jacoco:coverage>
</target>
<target name="report" depends="test">
<jacoco:report>
<executiondata>
<file file="${result.exec.file}" />
</executiondata>
<structure name="JaCoCo Ant Example">
<classfiles>
<fileset dir="${main.build.dir}" />
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="${main.src.dir}" />
</sourcefiles>
</structure>
<html destdir="${result.report.dir}" />
<csv destfile="${result.report.dir}/report.csv" />
<xml destfile="${result.report.dir}/report.xml" />
</jacoco:report>
</target>
<target name="rebuild" depends="clean,report" />
</project>
将该项目放到apache-tomcat-8.0.50/webapps下,到输入命令:
ant report
在对应的目录下会生成html的报告,目录如下:
点击可以查看具体的报告:
相关代码下载:代码下载
Junit+ant+JaCoCo集成使用的更多相关文章
- 将jacoco集成到测试工具平台
最近在做接口测试,想通过代码覆盖率来判断一下接口用例是否缺失,但是每次通过命令来生成覆盖率报告,感觉太麻烦,所以就想着把jacoco集成到测试工具平台中,只需要点几个按钮,就能查看到覆盖率报告. 测试 ...
- 单元测试系列之一:如何使用JUnit、JaCoCo和EclEmma提高单元测试覆盖率
更多原创测试技术文章同步更新到微信公众号 :三国测,敬请扫码关注个人的微信号,感谢! 原文链接:http://www.cnblogs.com/zishi/p/6726664.html -----如 ...
- 学习笔记:首次进行JUnit+Ant构建自动的单元测试(二)
关键字:JUnit,Ant,单元测试 终于把JUnit+Ant构建单元测试的大概了解了,其实我实践的过程是对了,只是指导博客(看到这里不懂请看我上一篇博客)本身的错误“成功”把我带入“坑”,有时候网友 ...
- 学习笔记:首次进行JUnit+Ant构建自动的单元测试(一)
指导博客:https://blog.csdn.net/Cceking/article/details/51692010 基于软件测试的需求,使用JUnit+Ant构建自动的单元测试. IDE:ecli ...
- jenkins+jacoco+ant+apache集成统计web端功能测试覆盖率
一.覆盖率定义 作为一个测试人员,保证产品的软件质量是其工作首要目标,为了这个目标,测试人员常常会通过很多手段或工具来加以保证,覆盖率就是其中一环比较重要的环节. 我们通常会将测试覆盖率分为两个部分, ...
- DevOps之Pipeline集成junit、jacoco、SonarQube(二)
一.准备工作 1.准备一个持续集成的代码工程 工程下载地址: Github地址为:https://github.com/zbbkeepgoing/springboot-demo 2.springboo ...
- SpringBoot Junit Maven JaCoCo
写一下最近写单体测试的一些笔记. SrpingBoot的测试用例: @RunWith(SpringJUnit4ClassRunner.class) @SpringBootTest(classes = ...
- ant+Jacoco 统计tomcat远程部署后项目接口自动化测试或者功能测试代码覆盖率
1.安装ant 环境,https://ant.apache.org/bindownload.cgi 2.下载jacoco包 https://www.eclemma.org/jacoco/ ,解压后, ...
- Jenkins + Jmeter +Ant自动化集成环境搭建(一)
所需工具 一.jmeter 工具下载 https://jmeter.apache.org/ 配置环境JDK等及各种插件可以看小七之前的教程 二.Ant安装(http://ant.apache.org ...
随机推荐
- Nginx 出现413 Request Entity Too Large得解决方法
Nginx 出现413 Request Entity Too Large得解决方法 默认情况下使用nginx反向代理上传超过2MB的文件,会报错413 Request Entity Too Large ...
- flask学习(八):页面跳转和重定向
1. 用处:在用户访问一些需要登录的页面的时候,如果用户没有登录,那么让页面重定向到登录页面 2. 实例 运行效果: 用户已登录,进入发布问答页面 用户未登录,跳转到登录页面
- 十三 web爬虫讲解2—Scrapy框架爬虫—Scrapy爬取百度新闻,爬取Ajax动态生成的信息
crapy爬取百度新闻,爬取Ajax动态生成的信息,抓取百度新闻首页的新闻rul地址 有多网站,当你浏览器访问时看到的信息,在html源文件里却找不到,由得信息还是滚动条滚动到对应的位置后才显示信息, ...
- Neutron三层网络服务实现原理
Neutron 对虚拟三层网络的实现是通过其 L3 Agent (neutron-l3-agent).该 Agent 利用 Linux IP 栈.route 和 iptables 来实现内网内不同网络 ...
- 【zzuli-2276】跳一跳
题目描述 今天跳跳去公园游玩,第一个游戏就难倒了跳跳,游戏规则是跳跳站在一个面积无限大的矩形土地上,开始时跳跳在左上角(即第一行第一列),每一次跳跳都可以选择一个右下方格子,并瞬间跳过去(如从下图中的 ...
- CentOS7 修改默认时区为 北京时间
首先同步时间 yum install -y ntpdate ntpdate -u cn.pool.ntp.org 然后设置中国时区(北京时间) timedatectl set-timezone Asi ...
- 12.18 分布式系统下的session
广义的session: 会话控制,可以理解成为一种保存key-value的机制 从key的方面来看:sessionId和token sessionId: 服务端请求客户端的时候,服务端通过setcoo ...
- 微信授权网页获取用户openiid
微信网页授权:官方文档: https://mp.weixin.qq.com/wiki 支付文档:https://pay.weixin.qq.com/wiki/doc/api/index.html 调试 ...
- LeetCode之Longest Substring Without Repeating Characters
[题目描述] Given a string, find the length of the longest substring without repeating characters. Exampl ...
- ant+jmeter+jenkins+git持续集成以及邮件报告展示
前序准备工作: ant--下载地址:http://ant.apache.org/bindownload.cgi jmeter--下载地址:http://jmeter.apache.org/downlo ...