- 浏览: 370224 次
- 性别:
- 来自: 西安
文章分类
最新评论
-
jiangli19192:
...
自己写的一个启动JBoss服务器的bat批处理 -
56553655:
最好这样:java -Xms3700M -Xmx3700M - ...
测试本机JVM支持的最大内存 -
lizhiy05:
学习一哈……
Web Services体系结构及相关概念 -
ghy200692162:
System.out.println("开始注册Js ...
基于OSGi的JSF Web组件开发问题求解 -
xiao888lin:
你的头像看起来很像我们宿舍老四。。。
测试本机JVM支持的最大内存
Cobertura是一个基于jcoverage的免费Java工具,它能够显示哪一部分代码被你的测试所覆盖,并可生成HTML或XML报告. 它通过检测基本的代码,并观察在测试包运行时执行了哪些代码和没有执行哪些代码,来测量测试覆盖率。除了找出未测试到的代码并发现 bug 外,Cobertura 还可以通过标记无用的、执行不到的代码来优化代码,还可以提供 API 实际操作的内部信息。
在工具的选择上我曾经也是犹豫过,emma看样子好像也是一个不错的选择,因为他对开发覆盖率细节方面的关注让我还是感觉比较贴心,但是emma生成的report确实有些让人不太舒服,感觉还是Cobertura的report更加完善些。最后还是选择了Cobertura。如果大家需要了解这两个工具各自的优势可以浏览以下主题:
--------------------------------------------------------------------------------
http://raibledesigns.com/rd/entry/emma_vs_cobertura_for_code
http://kwakil.blogspot.com/2006/07/cobertura-vs-emma.html
--------------------------------------------------------------------------------
尽管emma在maven中生成的报表没有Cobertura好看,但是有一个基于emma的Eclipse插件却是相当棒的一个工具,这个工具可以帮助开发人员对测试用例有针对性的关注代码的覆盖率。为了保证本专题的完整性,我打算再开一个专题专门说明emma的Eclipse插件的使用。
要想在Maven2中使用Cobertura生成单元测试报告,首先需要做的就是更新你的Maven2版本,我以前用的是version2.0.4,Cobertura好像并未对该版本的Maven2提供支持,而且官方也没有明确说明plugin只支持到了version2.0.6,最后熬了好多天,我的同事才发现原来是版本的问题。最后我将我的Maven2版本升级到version2.0.6,执行了一下site命令,呵呵呵呵,期待已久的cobertura目录终于出现了。
其实Cobertura的官方Maven Plugin是有bug的,你可以在Maven的官方网站上找到相关信息:
http://jira.codehaus.org/browse/MCOBERTURA-61
所以我们现在虽然down下来了Cobertura的Maven Plugin,但是还是没法生成正确的Coverage Reporting,后来同事在网上发现了一个修正了官方bug的Maven Plugin,做法是直接下载到本地,然后手动在Maven2仓库中覆盖掉从官方下载下来的jar文件。
如果你用的是JDK5可以从下面的网址下载:
http://www.artofsolving.com/files/m2/cobertura-1.8.jar
如果你用的是JDK1.4那就从下面的网站下载:
http://dist.codehaus.org/mule/dependencies/maven2/cobertura/cobertura/1.8/cobertura-1.8.jar
下面是Cobertura Plugin提供的一些goal,帖出来方便查阅:
--------------------------------------------------------------------------------
Goal Description
cobertura:check Check the Last Instrumentation Results.
cobertura:clean Clean up rogue files that cobertura maven plugin is tracking.
cobertura:dump-datafile Cobertura Datafile Dump Mojo
cobertura:instrument Instrument the compiled classes.
cobertura:cobertura Instruments, Tests, and Generates a Cobertura Report.
--------------------------------------------------------------------------------
说了半天,还没有说到如何在Maven2中进行配置,由于Maven官方提供的Cobertura插件只支持标准的测试发布路径(有些喜欢将测试类和工程类编译到同一个路径下,但是Maven官方推荐的路径确实将测试类和工程类分开编译到不同的路径下),那首先需要修改编译路径,如果在你的Project POM中没有对编译路径、资源路径做过任何声明,那Maven就会默认取标准路径,如果你的工程真的没有设置这些信息,那么,你很幸运,可以跳过此步。但是如果你的路径不是标准路径,请按以下方式进行修改:
- <sourceDirectory>src/main/java</sourceDirectory>
- <scriptSourceDirectory>src/main/scripts</scriptSourceDirectory>
- <testSourceDirectory>src/test/java</testSourceDirectory>
- <outputDirectory>target/classes</outputDirectory>
- <testOutputDirectory>target/test-classes</testOutputDirectory>
通常情况下我们只需要进行如下配置就足可以应付当前的测试需求了:
- <reporting>
- <outputDirectory>target/site</outputDirectory>
- <plugins>
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>cobertura-maven-plugin</artifactId>
- </plugin>
- </plugins>
- </reporting>
当QA拿到test case运行的coverage reporting 时,通常希望能够进行打包以和开发人员取得联系,本人目前尚未找到合适的Maven打包方法,由于在Maven2中支持执行Ant脚本,因此我在这里为build节点中的plugins节点提供了一个用ant脚本写的plugin,在Maven命令行通过执行site命令便可以将最后的测试报告(包括测试代码覆盖率和测试用例的运行情况reports)进行打包
- <plugin>
- <artifactId>maven-antrun-plugin</artifactId>
- <executions>
- <execution>
- <phase>site</phase>
- <configuration>
- <tasks>
- <copy todir="target/classes">
- <fileset dir="src/main/java">
- <include name="**/*.java" />
- </fileset>
- </copy>
- <jar destfile="target/cover-test-result.zip">
- <fileset dir="target/site">
- <include name="**/*.html" />
- <include name="**/*.css" />
- <include name="**/*.txt" />
- <include name="**/*.png" />
- <include name="**/*.js" />
- </fileset>
- </jar>
- </tasks>
- </configuration>
- <goals>
- <goal>run</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
继续说Cobertura的附加配置:
通过上面的配置,我们已经可以对一个工程进行代码覆盖率测试了,但是Cobertura在你没有声明test case不用分析覆盖率的情况下,他会连同test case一起分析覆盖率,尽管这样不会影响我们整个工程的代码覆盖率,但是在生成的报告中多出一个testcase来,总让人感觉不是很舒服,因此,你可以采用Cobertura的一些附加配置来限制那些不用进行覆盖率测试的类,具体做法如下:
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>cobertura-maven-plugin</artifactId>
- <configuration>
- <instrumentation>
- <!--<ignore>.*</ignore>
- -->
- <excludes>
- <exclude>**/*Test.class</exclude>
- </excludes>
- </instrumentation>
- </configuration>
- <executions>
- <execution>
- <goals>
- <goal>clean</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
将上面这段代码加入到build节点的plugins节点中。执行site命令,看看是不是已经没有test case的代码覆盖率report了?呵呵呵呵。
结束!!!!
发表评论
-
GIT使用批处理完成日常代码管理
2017-03-26 22:01 1271本文默认读者的本机是已经安装好了GIT本地端,因此对于GI ... -
在Maven2插件中用Velocity对配置文件的集中管理
2007-08-06 16:55 2412正如我在“用Velocity进行配置文件信息的集中管理 ”—— ... -
用Velocity进行配置文件信息的集中管理
2007-07-27 16:02 4630Apache从他诞生的那天起 ... -
测试驱动开发与EasyMock的使用
2007-07-17 22:19 1954测试驱动开发并不是什 ... -
在工程POM中内嵌Ant脚本
2007-07-17 22:14 1769由于每篇文章的字数有限制,我没办法在同一个专题中同时将相关的问 ... -
Maven2插件开发详解
2007-07-17 22:11 8975在Maven2强大功能的魅力 ... -
用Emma的Eclipse插件进行代码覆盖率测试
2007-07-17 22:00 6895如上一个关于Cobertura的专题所说,我这里单开一个专题来 ... -
ant中使用cobertura分析测试用例的代码覆盖率
2007-07-17 21:48 4604这次还是配置问题,接上上次关于ant脚本模板的详细说明。对于一 ... -
我写的ant编译、打包、测试、测试报告生成和邮件发送模板
2007-07-17 21:40 4967js 代码 <?xml ve ... -
XFire使用举例
2007-07-17 21:32 2431闲来无事,顺便写个XFire的小例子,也算是打发时间了,o( ... -
Maven入门--较复杂的实例
2007-07-17 21:19 1641本文将使用一个较复杂的实例,讲述如何定制目录布局(即不使用M ... -
Maven入门--概念与实例
2007-07-17 21:15 1367Maven入门--概念与实例 最近由于工作原因在研 ... -
设计模式总结
2007-07-17 17:14 628设计模式 1) 控制倒置模式: 说到控制倒置模式,就不得不 ... -
Eclipse中常用快捷键总结
2007-07-17 16:57 1178Eclipse中常用快捷键总结: CTRL+SHI ... -
修改eclipse中的默认maven2资源仓库保存地址
2007-07-17 16:56 5848当你在eclipse中集成了maven2后,默认情况下,ecl ... -
用ant进行工程管理
2007-07-17 13:50 21441.典型地,一个ant工程脚本如下: < ... -
利用maven2为工程的jar文件内部打入版本信息
2007-07-17 13:42 17601.修改pom.xml文件,在proj ... -
比ant更强大的工具maven2之自动生成工程
2007-07-17 13:38 2953maven2是在ant的基础上发展起来的,并对ant的功能进行 ... -
OFBIZ开源电子商务学习心得
2007-07-17 13:36 2566看懂在APACHE网站上的英文文档确实是一项不小的挑战,下面说 ... -
开始每个模块功能编写时需要做的事情总结
2007-07-17 13:20 11181.对查询出的展示列表进行排序 2.检查SQL语句,并思 ...
相关推荐
4. **执行Cobertura**:在命令行中,使用`cobertura`命令来启动覆盖率分析。这通常会涉及到指定源代码路径、测试结果和覆盖率报告的目标位置。 5. **查看报告**:Cobertura会生成HTML报告,你可以通过浏览器打开...
总的来说,"Junit+ant+cobertura示例"是一个展示如何使用JUnit进行单元测试,通过Ant进行自动化构建,并利用Cobertura进行代码覆盖率分析的实践案例。这样的组合可以帮助开发者更高效地管理和提升代码质量,确保软件...
Cobertura是一款强大的Java代码覆盖率测试工具,它的主要任务是对Java源代码进行度量,以确定测试套件在运行时覆盖了多少代码。这个过程对于确保软件的质量和完整性至关重要,因为全面的测试覆盖率可以帮助开发者...
“Cobertura测试代码”通常指的是使用Cobertura工具对Java项目进行代码覆盖率分析的实践过程。这个过程包括安装Cobertura、配置构建工具(如Maven或Gradle)、运行测试并生成报告,以及解读和改进测试覆盖率。...
5. **命令行界面**:除了通过Maven,Cobertura还支持通过命令行工具运行,这对于不使用Maven或者想要手动控制覆盖率收集的项目非常有用。 6. **配置灵活性**:Cobertura可以通过XML配置文件进行定制,你可以指定要...
2. **运行测试**:在Maven中,你可以使用`mvn cobertura:cobertura`命令来运行测试并生成覆盖率报告。Gradle中则对应相应的任务命令。 3. **查看报告**:Cobertura会生成HTML格式的覆盖率报告,你可以通过浏览器...
为了使用Cobertura对上述的Java类进行覆盖率分析,我们需要进行以下步骤的配置: 1. **修改build.xml文件**:如果使用的是Ant,则需要在build.xml文件中加入Cobertura插件的相关配置。 2. **执行测试**:运行...
在实际应用中,Cobertura可以与其他开发工具(如Maven或Gradle)集成,通过简单的命令行调用来自动化代码覆盖率的计算。此外,它还支持将结果导出到多种格式,如HTML、XML,方便在团队间分享和讨论。为了获得最佳...
在IT行业中,Maven是一个广泛使用的构建自动化工具,主要用于Java项目的管理。它通过定义项目结构、依赖管理和构建生命周期,使得开发人员能够更高效地管理项目。以下是一个详细的Maven项目搭建流程,涵盖了从创建到...
4. **Maven 和 Ant 集成**:Cobertura 提供了与 Maven 和 Ant 构建工具的插件,方便在构建过程中集成代码覆盖率检查。 5. **持续集成**:与 Jenkins、GitLab CI/CD 等持续集成工具配合,可以在每次构建时自动执行...
本文将深入探讨Maven如何进行测试,并详细解析Maven项目中的测试实践。 1. **Maven测试框架集成** Maven支持多种测试框架,如JUnit、TestNG等。在`pom.xml`文件中,通过添加相应的插件依赖,可以将这些测试框架...
此外,Maven支持持续集成,通过Cobertura等插件提供测试覆盖率报告,帮助提升代码质量。 **6. 代码质量管理** Maven提供了CheckStyle、PMD、CPD等插件,对代码风格、质量、重复代码进行检查,促进团队遵循编码规范...
Gradle Cobertura Plugin则是将Cobertura集成到Gradle构建系统中的一种方式,使得开发者在使用Gradle时也能方便地进行代码覆盖率检查。通过这个插件,开发者可以轻松地配置Cobertura任务,生成覆盖率报告,并将其...
使用插件如 Checkstyle 和 Cobertura 来提高代码质量和测试覆盖率。 #### 十一、Maven 中的高级话题 **11.1 使用 Maven 进行部署** Maven 的 `deploy` 命令可以将构建好的构件自动发布到远程仓库。 **11.2 持续...
集成这些工具后,你可以创建一个Jenkins job,该job在代码提交时自动触发,先使用Maven构建项目,然后通过SonarScanner执行代码分析,并将结果上传到SonarQube。这样,每次代码更新都能及时得到质量检查报告,便于...
这些命令使得开发者能够在不同平台上使用一致的方式进行项目操作。 6. **统一项目结构**: Maven提倡一种标准化的目录结构,使得开发者可以快速定位源码、测试代码、资源文件等。例如,源代码通常放在`src/main/...
6. Maven与Mvnw:在提供的文件列表中,`mvnw`和`mvnw.cmd`是Maven的可执行脚本,用于简化命令行操作,无需全局安装Maven即可执行构建任务。Maven是Java项目管理工具,它能够管理项目的依赖、构建过程以及执行测试。 ...
此外,Maven支持多种插件,可以帮助进行代码质量检查、性能测试、代码覆盖率报告等。例如,PMD插件可以检查代码风格,FindBugs插件可以检测潜在的错误,Cobertura插件可以生成代码覆盖率报告。 总的来说,通过Maven...
3. **JaCoCo应用**:JaCoCo提供了命令行接口、Maven插件和Ant任务等多种使用方式。在项目中集成JaCoCo,可以设置最小覆盖率阈值,当测试覆盖率低于该阈值时,构建失败。此外,JaCoCo还可以与其他测试框架(如JUnit、...
5. **命令行工具**:提供命令行接口,允许在没有IDE的环境中进行覆盖率测试。 6. **测试框架兼容性**:可能支持JUnit、TestNG等常见的Java测试框架,方便在测试执行后自动收集覆盖率数据。 7. **可扩展性**:可能...