UnitTest:maven中使用Jacoco计算代码覆盖率

一、Jacoco 简介

jacoco 官网

Jacoco可以嵌入到Ant、Maven中,也可以使用Java Agent技术监控任意Java程序,也可以使用Java Api来定制功能。

Jacoco会监控JVM中的调用,生成监控结果(默认保存在jacoco.exec文件中),然后分析此结果,配合源代码生成覆盖率报告。

二、基于maven的配置jacoco

在pom.xml中添加配置 

                org.jacoco

                jacoco-maven-plugin

                0.7.8

               

                   


                        default-prepare-agent

                       

                            prepare-agent

                       


                       

                           

                                ${project.build.directory}/coverage-reports/jacoco.exec

                           

                            surefireArgLine

                       

                   

                   

                        default-report

                        test

                       

                            report

                       

                       

                            ${project.build.directory}/coverage-reports/jacoco.exec

                  ${project.reporting.outputDirectory}/jacoco

                       

                   

               

           

           

                org.apache.maven.plugins

                maven-surefire-plugin

                2.16

               

                    ${surefireArgLine} -Xmx1024m -XX:PermSize=256m -XX:MaxPermSize=256m

               

           

            org.jacoco

            jacoco-maven-plugin

            0.7.8

       

如果是使用junit 使用以上配置。

如果是testng 需要添加 suiteXmlFile。在testng.xml中添加tastclass

                org.apache.maven.plugins

                maven-surefire-plugin

                2.16

               

                   

                        testng.xml

                   

                    ${surefireArgLine} -Xmx1024m -XX:PermSize=256m -XX:MaxPermSize=256m

               

           

假设说原本的项目用的是junit 后来改用testng,这时候不需要修改junit的tastcase,只需配testng.xml ,testng可以执行junit的代码。testng.xml配置如下:

   

       

           

       

   

3、执行测试

UnitTest:maven中使用Jacoco计算代码覆盖率_第1张图片
mvn clean test

4、测试结果

执行成功后会在target/site目录下生成html覆盖率报告

UnitTest:maven中使用Jacoco计算代码覆盖率_第2张图片
报告目录
UnitTest:maven中使用Jacoco计算代码覆盖率_第3张图片
index.html


扫一扫,关注TestDev

你可能感兴趣的:(UnitTest:maven中使用Jacoco计算代码覆盖率)