对junit单元测试的报告:类似这样的结果
  1. -------------------------------------------------------
  2. T E S T S
  3. -------------------------------------------------------
  4. Running com.cn.qin.actionTest.UserActionTest
  5. sdffsdfsdf
  6. Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.061 sec - in com.cn.qin.actionTest.UserActionTest
  7.  
  8. Results :
  9.  
  10. Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
  11.  
  12. [INFO]
  13. [INFO] <<< cobertura-maven-plugin:2.5.1:cobertura (cobertura-report) < [cobertura]test @ Struts <<<
  14. [INFO]
  15. [INFO] --- cobertura-maven-plugin:2.5.1:cobertura (cobertura-report) @ Struts ---
  16. [INFO] Cobertura 1.9.4.1 - GNU GPL License (NO WARRANTY) - See COPYRIGHT file
  17. Cobertura: Loaded information on 3 classes.
  18. 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中配置如下
  1. <build>
  2. <plugins>
  3. <plugin>
  4. <groupId>org.apache.maven.plugins</groupId>
  5. <artifactId>maven-surefire-plugin</artifactId>
  6. <version>2.5</version>
  7. <configuration>
  8. <skipTests>true</skipTests>
  9. </configuration>
  10. </plugin>
  11. </plugins>
  12. </build>

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

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

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

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

  1. <build>
  2. <plugins>
  3. <plugin>
  4. <groupId>org.apache.maven.plugins</groupId>
  5. <artifactId>maven-surefire-report-plugin</artifactId>
  6. <version>2.12.2</version>
  7. <configuration>
  8. <showSuccess>false</showSuccess>
  9. </configuration>
  10. </plugin>
  11. </plugins>
  12. </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配置
  1. <build>
  2. <plugins>
  3. <plugin>
  4. <groupId>org.codehaus.mojo</groupId>
  5. <artifactId>cobertura-maven-plugin</artifactId>
  6. <version>2.5.1</version>
  7. </plugin>
  8. </plugins>
  9. </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配置插件
  1. <build>
  2. <plugins>
  3. <plugin>
  4. <groupId>org.apache.maven.plugins</groupId>
  5. <artifactId>maven-surefire-plugin</artifactId>
  6. <version>2.19.1</version>
  7. <configuration>
  8. <!--设置包含的测试类 -->
  9. <includes>
  10. <include>******</include>
  11. <include>*/User*</include>
  12. </includes>
  13. <!-- 设置不进行测试类 -->
  14. <excludes>
  15. <exclude>Test*</exclude>
  16. </excludes>
  17. <!-- 跳过测试阶段,測試類写的有问题也会出错,一般不推荐 -->
  18. <!--<skip>true</skip> -->
  19. </configuration>
  20. </plugin>
  21.  
  22. <!-- 构建项目站点报告插件 -->
  23. <plugin>
  24. <groupId>org.apache.maven.plugins</groupId>
  25. <artifactId>maven-site-plugin</artifactId>
  26. <version>3.0-beta-3</version>
  27. <configuration>
  28. <!-- 配置站点国际化 -->
  29. <locales>zh_CN</locales>
  30. <!-- 输出编码 -->
  31. <outputEncoding>GBK</outputEncoding>
  32. </configuration>
  33. </plugin>
  34.  
  35. <!-- 项目API doc报告 -->
  36. <plugin>
  37. <groupId>org.apache.maven.plugins</groupId>
  38. <artifactId>maven-javadoc-plugin</artifactId>
  39. <version>2.7</version>
  40. </plugin>
  41.  
  42. <!-- 单元测试报告html -->
  43. <plugin>
  44. <groupId>org.apache.maven.plugins</groupId>
  45. <artifactId>maven-surefire-report-plugin</artifactId>
  46. <version>2.12.2</version>
  47. <configuration>
  48. <showSuccess>false</showSuccess>
  49. </configuration>
  50. </plugin>
  51.  
  52. <!-- 测试覆盖率的报告 -->
  53. <plugin>
  54. <groupId>org.codehaus.mojo</groupId>
  55. <artifactId>cobertura-maven-plugin</artifactId>
  56. <version>2.5.1</version>
  57. <configuration>
  58. <formats>
  59. <format>html</format>
  60. <format>xml</format>
  61. </formats>
  62. </configuration>
  63. <executions>
  64. <execution>
  65. <id>cobertura-report</id>
  66. <goals>
  67. <goal>cobertura</goal>
  68. </goals>
  69. <phase>test</phase>
  70. </execution>
  71. </executions>
  72. </plugin>
  73.  
  74. </plugins>
  75. </build>

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

 

Maven单元测试报告及测试覆盖率的更多相关文章

  1. spring && Cobertura && maven &&junit 单元测试以及测试覆盖率

    1. 目的:       junit 单元测试,Cobertura   测试覆盖率报告       项目目录结构          2. maven 配置     <project xmlns= ...

  2. 测试覆盖率 之 Cobertura的使用

    什么是代码覆盖率? 代码覆盖率是对整个测试过程中被执行的代码的衡量,它能测量源代码中的哪些语句在测试中被执行,哪些语句尚未被执行. 为什么要测量代码覆盖率? 众所周知,测试可以提高软件版本的质量和可预 ...

  3. Maven中配置生成单元测试报告配置

    对junit单元测试的报告: 1.  ------------------------------------------------------- 2.   T E S T S 3.  ------ ...

  4. Eclipse创建Maven Web项目 + 测试覆盖率 + 常见问题(2015.07.14——湛耀)

    Eclipse创建Maven web项目: 到此,并没有创建好,接下来一步步解决问题: 问题:无法创建src/main/java目录 解决: 右键项目选择[properties] 点击[OK] 问题: ...

  5. 20分钟理清Maven构建中的测试相关工具的关系

    如果你用Maven进行系统构建,同时还要同步编写测试用例,获取用例成功与否以及用例覆盖率的相关报告,那么这些工具你肯定接触过不少: JUnit TestNG maven-surefire-plugin ...

  6. 使用Cobertura统计JUnit测试覆盖率

    这是一个JavaProject,关于Cobertura的用法详见代码注释 首先是应用代码(即被测试的代码) package com.jadyer.service; public class Calcu ...

  7. 测试覆盖率Emma工具使用

    Emma使用与分析 #什么是Emma EMMA 是一个开源.面向 Java 程序测试覆盖率收集和报告工具.它通过对编译后的 Java 字节码文件进行插装,在测试执行过程中收集覆盖率信息,并通过支持多种 ...

  8. Nodejs开源项目里怎么样写测试、CI和代码测试覆盖率

    测试 目前主流的就bdd和tdd,自己查一下差异 推荐 mocha和tape 另外Jasmine也挺有名,angularjs用它,不过挺麻烦的,还有一个选择是qunit,最初是为jquery测试写的, ...

  9. 测试覆盖率工具EclEmma安装与使用

    此文来自于:https://www.cnblogs.com/cnsdhzzl/p/7638883.html EclEmma的简介 一个优秀的开源软件测试工具 eclipse的一个插件 能够对由 Jav ...

随机推荐

  1. Android:理解Fragment

    最近都在公司搞测试,静不下心来学android.今天就把Fragment搞懂吧. Fragment的几点要点: 1.用于大屏幕平板,容纳更多组件,可复用2.Fragment必须嵌入Activity中 ...

  2. insertAfter的兼容性

    function insertAfter(newElement,targetElement){    var parent=targetElement.parentNode;    if(parent ...

  3. jquery过滤器

    <html> <head> <meta charset="UTF-8"> <title>Document</title> ...

  4. js 查找关键字

    查找:4种: 1. 查找固定关键字,仅返回位置,可指定开始位置: var i=str.indexOf("kword"[,starti]); str.lastIndexOf(&quo ...

  5. 现在写 PHP,你应该知道这些

    现在写 PHP,你应该知道这些 2015-10-21    分类:WEB开发.编程开发.首页精华2人评论     来源:Scholer's Blog 分享到:更多3 二十万年薪PHP工程师培养计划 成 ...

  6. 使用 readfile() 下载文件

    下载图片 <?php $file = 'monkey.gif'; if (file_exists($file)) { header('Content-Description: File Tran ...

  7. Thinking in Java——笔记(5)

    Initialization & Cleanup Guaranteed initialization with the constructor In Java, the class desig ...

  8. SQL Server执行计划的理解【转】

      要理解执行计划,怎么也得先理解,那各种各样的名词吧.鉴于自己还不是很了解.本文打算作为只写懂的,不懂的懂了才写. 在开头要先说明,第一次看执行计划要注意,SQL Server的执行计划是从右向左看 ...

  9. ConcurrentHashMap Put()操作示例代码

    非常简练: private static void put(MetricKey key, float value) { MetricValue current; do { current = map. ...

  10. Android动画设计源码地址

    Android动画设计源码地址 http://blog.csdn.net/shanghaibao123/article/details/45223825