sonarqube 覆盖率_测开技能测试覆盖率集成到SonarQube平台
在之前的文章,jenkins +sonarqube 对后端代码静态扫描,钉钉群通知执行结果 和ant+Jacoco 统计tomcat远程部署后项目接口自动化测试或者功能测试代码覆盖率 分别讲了sonarqube代码扫描和Jacoco获取代码覆盖率,那么很多人会这么问了,我们进行了代码扫描,代码覆盖率,那么我们是否可以集成到一个平台上面,方便大家都可以查看呢,答案是可以的。本文就来和大家讲解下,如何通过ant 将Jacoco获取的覆盖率同步到sonarqube的平台。
首先我们要下载sonnar for ant,下载链接如下:
https://docs.sonarqube.org/latest/analysis/scan/sonarscanner-for-ant/
选择下载

下载后呢,我们需要在build.xml增加配置,这里呢,我把所有的配置呢,都给大家发出来,方便大家呢,去使用。
<?xml version="1.0" encoding="utf-8"?><project name="jacoco_test" xmlns:jacoco="antlib:org.jacoco.ant" xmlns:sonar="antlib:org.sonar.ant"> <property name="classpath" value="${classpath}" /> <property name="codepath" value="${codepath}" /> <property name="address" value="${address}" /> <property name="port" value="${port}" /> <property name="reportpath" value="${path}"/> <property name="sonar.projectKey" value="plan" /> <property name="sonar.projectName" value="jacoco test project" /> <property name="sonar.projectVersion" value="1.0" /> <property name="sonar.language" value="java" /> <property name="sonar.sources" value="/Users/lileilei/Desktop/testplan/plan/src" /> <property name="sonar.binaries" value="/Users/lileilei/Desktop/testplan/plan/target/classes" /> <property name="sonar.java.binaries" value="/Users/lileilei/Desktop/testplan/plan/target/classes" /> <property name="sonar.sourceEncoding" value="UTF-8" /> <property name="sonar.dynamicAnalysis" value="reuseReports" /> <property name="sonar.java.coveragePlugin" value="jacoco" /> <property name="sonar.jacoco.reportPath" value="/Users/lileilei/Desktop/testplan/plan/jacoco.exec" /> <property name="sonar.jdbc.url" value="jdbc:h2:tcp://localhost:3306/sonar" /> <property name="sonar.jdbc.username" value="root" /> <property name="sonar.jdbc.password" value="" /> <property name="path" value="${pathname}"/> <property name="jacocoantPath" value="/Users/lileilei/Desktop/testplan/plan/jacocohome/jacocoant.jar"/> <taskdef uri="antliab:org.jacoco.ant" resource="org/jacoco/ant/antlib.xml"> <classpath path="/Users/lileilei/Desktop/testplan/plan/jacocohome/jacocoant.jar"/> taskdef> <target name="dump"> <jacoco:dump address="${address}" reset="true" port="${port}" destfile="${reportpath}/jacoco.exec" > jacoco:dump> target> <target name="report"> <jacoco:report> <executiondata> <file file="${reportpath}/jacoco.exec"/> executiondata> <structure name="pan"> <group name="pan"> <classfiles> <fileset dir="${classpath}"/> classfiles> <sourcefiles encoding="utf-8"> <fileset dir="${codepath}" /> sourcefiles> group> structure> <html destdir="${reportpath}" encoding="utf-8"/> jacoco:report> target> <target name="sonar"> <taskdef uri="antlib:org.sonar.ant" resource="org/sonar/ant/antlib.xml"> <classpath path="/Users/lileilei/Downloads/sonarqube-ant-task-2.7.0.1612.jar" /> taskdef> <sonar:sonar /> target>project>整体的呢,配置就是上面呢,这里的配置完后呢,可以同步到远程的sonarqube平台,其实整体的配置是很简单的,也可以参照官网给的例子。下面呢,就是执行同步代码覆盖率的,执行
ant sonar
执行的时候的,sonarqube服务一定是启动的。

这样我们的代码覆盖率就之间同步到我们的平台了,我们可以点击链接去看看。可以看到,代码覆盖率已经通过过来2.7%


我们可以点开去看到里面的具体的覆盖,



我们可以依次看到不同的展示。我们还可以看到 不同的代码,哪里有没有覆盖到,我们可以在这里去增补我们的测试用例。

这样我们的静态代码扫描平台也能看到了我们的测试覆盖率,对于我们对代码的度量又多了一份数据的支撑。后续呢,我们还可以做很多的事情,当然,前期我们更多的是去收集我们的测试的数据,然后对我们的测试过程 落实到数据,后期可以支撑我们做很多的事情,比如代码健康度,测试用例覆盖率统计,等等。
雷子说测试开发,不定期给大家推送技术文章,欢迎大家的关注。
更多推荐
所有评论(0)