zoukankan      html  css  js  c++  java
  • maven 单元测试 ( http://www.cnblogs.com/qinpengming/p/5225380.html )

     对junit单元测试的报告:类似这样的结果

    复制代码
    -------------------------------------------------------
     T E S T S
    -------------------------------------------------------
    Running com.cn.qin.actionTest.UserActionTest
    sdffsdfsdf
    Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.061 sec - in com.cn.qin.actionTest.UserActionTest
    
    Results :
    
    Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
    
    [INFO] 
    [INFO] <<< cobertura-maven-plugin:2.5.1:cobertura (cobertura-report) < [cobertura]test @ Struts <<<
    [INFO] 
    [INFO] --- cobertura-maven-plugin:2.5.1:cobertura (cobertura-report) @ Struts ---
    [INFO] Cobertura 1.9.4.1 - GNU GPL License (NO WARRANTY) - See COPYRIGHT file
    Cobertura: Loaded information on 3 classes.
    Report time: 298ms
    复制代码

    运行报告是junit自己的报告输出,和咱们在Eclipse运行的报告差不多。以上代表运行了3个用例,和预期效果不符的是0个,失败的用例是0个,忽略的用例数是0个。   如果需要跳过单元测试,则可以运行如下命令

    1.  mvn package -DskipTests
      大家可能要问,为何Maven能够自己寻找我们编写的测试类呢?其实还是那句约定大于配置。Maven自动去寻找src/test/java下面的类,当此文件夹下面的类符合以下规范,那么Maven默认认为他们是单元测试用例类。
      Test*.java:任何目录下以Test为开始的类
      *Test.java: 任何目录下以Test为结尾的类
      *TestCase.java: 任何目录下以TestCase为结尾的类。
      如果想在一段时间内节省项目构建时间,暂时全部忽略单元测试。那么可以在pom.xml中配置如下
    复制代码
    <build>
          <plugins>
              <plugin>
                  <groupId>org.apache.maven.plugins</groupId>
                  <artifactId>maven-surefire-plugin</artifactId>
                  <version>2.5</version>
                  <configuration>
                     <skipTests>true</skipTests>
                  </configuration>
              </plugin>
          </plugins>
      </build>
    复制代码

    等到项目完全开发完了,需要测试用例的时候将其注释掉即可。

    本个模块有两个测试用例类,如果仅仅想运行一个测试用例该怎么办。
    运行下面命令: test -Dtest=AccountImageServiceImplTest
    这个是指定具体运行哪个测试用例。当然需要将pom文件中忽略测试用例的配置注释掉。
    也可以测试多个测试用例: mvn test -Dtest=AccountImageServiceImplTest,AccountImageUtilTest
    也可以使用模糊匹配进行测试:mvn test -Dtest=*Test
    复制代码
    <build>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>2.5</version>
          <configuration>
            <includes>
              <include>**/*Test.java</include>
            </includes>
            <excludes>
              <exclude>**/AccountImageUtilTest.java</exclude>
            </excludes>
          </configuration>
        </plugin>
      </plugins>
    </build>
    复制代码

    其中includes是需要测试的类,excludes是要排除之外测试用例。可以使用模糊匹配。**用来匹配任意件路经,*匹配任意类。

    Junit的单元测试报告的pom.xml配置

    复制代码
    <build>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-surefire-report-plugin</artifactId>
          <version>2.12.2</version>
          <configuration>
            <showSuccess>false</showSuccess>
          </configuration>
        </plugin>
      </plugins>
    </build>
    复制代码
    这个默认生成的报告是txt,要生成html的报告需要使用命令mvn surefire-report:report. 这会在target/site下面生成html的报告, 后来经测试发现,
    其实maven-surefire-plugin就已经可以生成txt和xml的测试结果,如果要html的报告才需要maven-surefire-report-plugin 
     
    4.  测试报告
      基本的测试报告上面已经介绍过了,下面我们看看测试覆盖率的报告。运行如下命令:mvn cobertura:cobertura   其pom.xml配置
    复制代码
    <build>
      <plugins>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>cobertura-maven-plugin</artifactId>
          <version>2.5.1</version>
        </plugin>
      </plugins>
    </build>
    复制代码
    常用命令
      mvn cobertura:help          查看cobertura插件的帮助
      mvn cobertura:clean         清空cobertura插件运行结果
      mvn cobertura:check         运行cobertura的检查任务
      mvn cobertura:cobertura     运行cobertura的检查任务并生成报表,报表生成在target/site/cobertura目录下
      cobertura:dump-datafile     Cobertura Datafile Dump Mojo
      mvn cobertura:instrument    Instrument the compiled classes
      在target文件夹下出现了一个site目录,下面是一个静态站点,里面就是单元测试的覆盖率报告。
      详细配置还可参考:http://zhanshenny.iteye.com/blog/1440571
    5.  总结
      这次我们介绍了Maven的测试,可以运行项目的单元测试用例,并生成报告。使用者可以根据自己的需要配置测试选项以满足项目的测试需求。
    我自己测试的pom.xml配置插件
    复制代码
    <build>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>2.19.1</version>
          <configuration>
            <!--设置包含的测试类 -->
            <includes>
              <include>******</include>
              <include>*/User*</include>
            </includes>
            <!-- 设置不进行测试类 -->
            <excludes>
              <exclude>Test*</exclude>
            </excludes>
            <!-- 跳过测试阶段,測試類写的有问题也会出错,一般不推荐 -->
            <!--<skip>true</skip> -->
          </configuration>
        </plugin>
    
        <!-- 构建项目站点报告插件 -->
        <plugin>     
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-site-plugin</artifactId>
          <version>3.0-beta-3</version>
          <configuration>
            <!-- 配置站点国际化 -->
            <locales>zh_CN</locales>
            <!-- 输出编码 -->
            <outputEncoding>GBK</outputEncoding>
          </configuration>
        </plugin>
        
        <!-- 项目API doc报告 -->
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-javadoc-plugin</artifactId>
          <version>2.7</version>
        </plugin>
    
        <!-- 单元测试报告html -->
        <plugin>      
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-surefire-report-plugin</artifactId>
          <version>2.12.2</version>
          <configuration>
            <showSuccess>false</showSuccess>
          </configuration>
        </plugin>
        
        <!-- 测试覆盖率的报告 -->
        <plugin>      
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>cobertura-maven-plugin</artifactId>
          <version>2.5.1</version>
          <configuration>
            <formats>
              <format>html</format>
              <format>xml</format>
            </formats>
          </configuration>
          <executions>
            <execution>
              <id>cobertura-report</id>
              <goals>
                <goal>cobertura</goal>
              </goals>
              <phase>test</phase>
            </execution>
          </executions>
        </plugin>
        
      </plugins>
    </build>
    复制代码

    生成的测试覆盖率会在你自己项目的target/site/cobertura/下面  我的路径是 file:///D:/InstallSoft/V2/workspace/user-parent/Struts/target/site/cobertura/index.html

  • 相关阅读:
    1058 A+B in Hogwarts (20)
    1036. Boys vs Girls (25)
    1035 Password (20)
    1027 Colors in Mars (20)
    1009. Product of Polynomials (25)
    1006. Sign In and Sign Out
    1005 Spell It Right (20)
    1046 Shortest Distance (20)
    ViewPager页面滑动,滑动到最后一页,再往后滑动则执行一个事件
    IIS7.0上传文件限制的解决方法
  • 原文地址:https://www.cnblogs.com/wang985850293/p/5227515.html
Copyright © 2011-2022 走看看