• 『Maven + Junit + Jacoco』单元测试覆盖率


    示例代码 - 码云

    pom中添加Junit依赖

    <!-- Junit -->
    <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency>

    测试类

    package com.glen.he;
    
    public class ComplexCalculation {
        public int Division(int a, int b) {
            return (a / b);
        }
    
        public int Multiply(int a, int b) {
            return (a * b);
        }
    }
    package com.glen.he;
    import static org.junit.Assert.assertEquals;
    import org.junit.Test;
    
    public class ComplexCalculationTest {
        ComplexCalculation cc = new ComplexCalculation();
    
        @Test
        public void DivisionTest() {
            int c = cc.Division(100, 5);
            assertEquals(20, c);
        }
    
        @Test
        public void MultiplyTest() {
            int c = cc.Multiply(100, 5);
            assertEquals(500, c);
        }
    }

     (先配置idea中terminal  maven的环境变量)执行mvn test

    Maven Surefire Plugin+Junit测试

    在默认情况下,执行maven test/maven package/maven install命令时会在target/surefire-reports目录下生成txt和xml格式的输出信息

    其实maven也可以生成html格式的报告,只需要用一个插件即可:maven-surefire-report-plugin

    pom.xml中添加插件

    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-surefire-plugin</artifactId>
      <version>2.5</version>
      <configuration>
        //跳过测试
        <skipTests>true</skipTests>

        //排除测试
        <excludes>
          <exclude>**/*ServiceTest.java</exclude>
        </excludes>

        //执行测试以 Test.java 或 TestCase.java 结尾的文件
        <includes>       <include>**/*Test.java</include>
          <include>**/*TestCase.java</include>     </includes>
      </configuration> </plugin>

       1.先编译源文件和测试用例

       2.再调用surefire插件(这个插件主要是用来执行单元测试的插件)生成txt和xml个数的测试输出信息

       3.surefire报告插件(也就是maven-surefire-report-plugin)会把target/surefire-reports下的所有xml报告转换成html格式的文件。并将这个html格式的测试报告保存在target/site目录下

    Jacoco

    pom.xml添加插件

    <plugin>
       <groupId>org.jacoco</groupId>
       <artifactId>jacoco-maven-plugin</artifactId>
       <version>0.8.3</version>
       <configuration>
           <skip>false</skip>
       </configuration>
    
      <executions>
          <execution>
             <goals>
                <goal>prepare-agent</goal>
             </goals>
       </execution>
    
       <execution>
           <!-- 指定报告输出目录 -->
           <configuration>
              <outputDirectory>${basedir}/target/coverage-reports</outputDirectory>
           </configuration>
           <id>report</id>
           <phase>test</phase>
              <goals>
                 <goal>report</goal>
              </goals>
        </execution>
    
     </executions>
    </plugin>

    直接启动下图1会生成测试报告.html 和 覆盖率报告.html

     target下的jacoco.exec文件也可以通过下图中的方式查看覆盖率报告

     

     

    说明:绿色  覆盖

         红色  未执行覆盖

          

    Maven动态指令测试用例

      mvn test -Dtest=类名         //执行单个测试类

      mvn test -Dtest=类名,类名  //逗号或* 分割执行多个测试类

    命令:mvn test surefire-report:report -Dmaven.test.skip=true  执行生成html文件

       mvn cobertura:cobertura  生成覆盖率报告

  • 相关阅读:
    C++: Ctor
    C++: RVO( return value optimization)
    alg_DP: LCS ( longest common substring )
    C++: TypeList
    android sdk入门(1)
    Ext.net 动态生成控件
    MVC常用控件
    学习MVC第一个增删修功能的本记
    学习MVC第二个实例登录代码(Model数据验证)
    在asp.net中使用自定义事件(带参数)
  • 原文地址:https://www.cnblogs.com/yan-sh/p/13932161.html
Copyright © 2020-2023  润新知