Jenkins+sonar+jcoco+ivy做代码覆盖率

本文档介绍了如何结合Jenkins、Sonar、jcoco和Ivy实现代码覆盖率报告。首先,确保代码包含单元测试内容。接着,下载并配置jacoco.jar到build.xml,然后配置Jenkins的Sonar插件,设置必要的属性如项目键、名称、版本等。在build.xml中,定义了编译、测试和报告生成的相关任务,包括单元测试的执行、JaCoCo覆盖率报告的生成。最后,通过在SonarQube web端配置,将单元测试结果展示,并在Tomcat的server.xml中添加链接以访问这些报告。

首先,研发写的代码里要有单元测试相关的桩内容。

1.需要下载可用的jacoco.jar包配置到build.xml中

2.jenkins配置:

sonar.projectKey=${JOB_NAME}
sonar.projectName=$JOB_NAME
sonar.projectVersion=$SVN_REVISION
sonar.sources=. 
sonar.language=java  
sonar.sourceEncoding=UTF-8
sonar.dynamicAnalysis=reuseReports
sonar.core.codeCoveragePlugin=jacoco
sonar.surefire.reportsPath=${WORKSPACE}/billtrunk/target/junit
sonar.java.binaries=${WORKSPACE}/billtrunk/bin/classes
sonar.jacoco.reportPath=${WORKSPACE}/billtrunk/target/sonar/jacoco.exec
sonar.junit.reportPaths=${WORKSPACE}/billtrunk/target/junit
sonar.jacoco.itReportPath=${WORKSPACE}/billtrunk/target/ITCoverageReport/jacocoIT.exec

3.build.xml样本

<?xml version="1.0" encoding="UTF-8"?>
<project name="Simple Java Project analyzed with the Sonar Ant Task" default="all" basedir="." xmlns:jacoco="antlib:org.jacoco.ant" xmlns:sonar="antlib:org.sonar.ant" xmlns:ivy="antlib:org.apache.ivy.ant">

        <!-- ========= Define the main properties of this project ========= -->
        <property name="src.dir" value="src" />
        <property name="build.dir" value="bin" />
        <property name="classes.dir" value="${build.dir}/classes" />
        <property name="lib.dir" value="${build.dir}/lib/"/>
        <property name="reports.junit.xml.dir" value="${basedir}/target/junit"/>
        <property name="sonar.coverage.lib" value="/opt/lib_coverage"/>
        <property name="ivysettings.dir" value="/opt/ivysettings"/>
        <property name="jacoco.dir" value="${basedir}/target/sonar"/>
        <property name="reports.ITCoverageReport.exec" value="${basedir}/target/ITCoverageReport"/>
        <property name="reports.ITCoverageReport.dir" value="${reports.ITCoverageReport.exec}/report"/>
        
        
        
    <path id="project.classpath">
            <fileset dir="${lib.dir}">
                <include name="*.jar"/>
            </fileset>
            <pathelement path="${classes.dir}"/>
        </path>
       
        <ivy:settings file="${ivysettings.dir}/ivysettings.xml" />
        <target name="resolve" description

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值