对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

maven 单元测试 ( http://www.cnblogs.com/qinpengming/p/5225380.html )的更多相关文章

  1. maven单元测试设置代理

    背景 环境需要设置代理才能够访问外部网络,如果只是运行java程序来访问网络,我们可以通过java -jar test.jar -DproxyHost=proxy_ip -DproxyPort=pro ...

  2. junit+maven单元测试

    一.概念 junit是一个专门测试的框架 集合maven进行单元测试,可批量测试类中的大量方法是否符合预期 二.作用:单元测试:测试的内容是类中的方法,每一个方法都是独立测试的.方法是测试的基本单位. ...

  3. maven单元测试报java.lang.IllegalStateException: Failed to load ApplicationContext

    报这个异常java.lang.IllegalStateException: Failed to load ApplicationContext的时候,通常是因为applicationContent.x ...

  4. Maven单元测试

    // SKU码:系列前3位+6位年月日+3位序号(自动生产,取数据库中当天最大的,没有就赋值位001) // 订单编号:BRD+6位年月日+5位序号 // // 退单号:BRT+6位年月日+3位序号 ...

  5. [转]利用maven的surefire插件实现单元测试与集成测试

    原文链接 http://my.oschina.net/dlpinghailinfeng/blog/301136 maven单元测试与集成测试 通过maven的Profile 配置生命周期 通过mave ...

  6. 搭建maven项目简介

    http://jingyan.baidu.com/album/9f7e7ec0b714ae6f29155465.html?picindex=1 Maven学习 (一) 搭建Maven环境 http:/ ...

  7. SpringBoot系列: 单元测试2

    之前发了SpringBoot 单元测试的博客, https://www.cnblogs.com/harrychinese/p/springboot_unittesting.html , 内容较少, 现 ...

  8. 照葫芦画瓢系列之Java --- eclipse下使用maven创建Struts 2项目

    一.创建Maven项目 http://www.cnblogs.com/zhanqun/p/8425571.html 二.添加struts2核心依赖包以及其他依赖项 打开pom.xm配置界面 点击Add ...

  9. intellij idea建立maven项目

    配置jdk 配置mvn http://jingyan.baidu.com/article/d8072ac45d3660ec94cefd51.html 右键“计算机”,选择“属性”,之后点击“高级系统设 ...

随机推荐

  1. 如何跟踪某个session的SQL

    1 oracle自带的sql trace程序可以跟踪本地session sys: alter system set sql_trace = true;对所有会话跟踪 schema: alter ses ...

  2. python+爬虫+签名

    在公众号,看到一个比较好玩的程序.它使用post的来传送请求,以前没有遇到过.可能是自己,写的程序太少了.查了一下post的用法: 通常,你想要发送一些编码为表单形式的数据——非常像一个 HTML 表 ...

  3. python中的matplotlib的一些基础用法

    #绘制折线图或者散点图plot import matplotlib.pyplot as pyl import numpy as npy x = [1,2,3,4,8] y = [5,7,2,1,5] ...

  4. 修改 Tomcat Connector运行模式 优化Tomcat运行性能

    omcat是一个小型的轻量级应用服务器,也是JavaEE开发人员最常用的服务器之一.不过,许多开发人员不知道的是,Tomcat Connector(Tomcat连接器)有bio.nio.apr三种运行 ...

  5. Netty 能做什么

    作为一个学Java的,如果没有研究过Netty,那么你对Java语言的使用和理解仅仅停留在表面水平,会点SSH,写几个MVC,访问数据库和缓存,这些只是初等Java程序员干的事.如果你要进阶,想了解J ...

  6. Markdown总结整理

    今天朋友(SolskGare)向我普及了一个很方便的文本编辑语言Markdown,才意识到之前自己用鼠标一点一点的排版有多low,而且往往还是费力不讨好.今天我就整理一下Markdown的用法,真的是 ...

  7. 206. Reverse Linked List (List)

    Reverse a singly linked list. /** * Definition for singly-linked list. * struct ListNode { * int val ...

  8. SQL Server 触发器 表的特定字段(一个字段)更新时,触发Update触发器

    CREATE TRIGGER [dbo].[Trg_Update_table1_column1]   on table1  after update  as  if update (column1)  ...

  9. swift4.2 - 一个自定义view弹框

    import UIKit /* * 注册协议view:没找到 UI原图,咱不实现 */ class JYRegisterProtocolView: UIView { /// 点击同意协议的回调 pri ...

  10. dup

    dup是一个操作符,由编译器识别处理,和db.dw.dd等数据定义伪指令配合使用,用来进行数据的重复. 例如 db  3  dup (0) 定义了3个字节,它们的值都是0,相当于db 0,0,0 db ...