Cobertura
是一款优秀的开源测试覆盖率统计工具(
http://cobertura.sourceforge.net
),
Maven
通过
cobertura-maven-plugin
与之集成,可以使用
mvn cobertura:cobertura
命令生成单元测试覆盖率报告。报告会在项目的
target/site/bobertura
目录下生成
html
文件,点击
index.html
文件可以看到报告详情。
一
maven
插件
参考官方文档:
http://mojo.codehaus.org/cobertura-maven-plugin/plugin-info.html
官方提供的
maven
插件,大致有以下
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.
--------------------------------------------------------------------------------
Maven
官方提供的
Cobertura
插件只支持标准的测试发布路径(有些喜欢将测试类和工程类编译到同一个路径下,但是
Maven
官方推荐的路径确实将测试类和工程类分开编译到不同的路径下),那首先需要修改编译路径,如果在你的
Project POM
中没有对编译路径、资源路径做过任何声明,那
Maven
就会默认取标准路径,如果你的工程真的没有设置这些信息,那么,你很幸运,可以跳过此步。但是如果你的路径不是标准路径,请按以下方式进行修改:
xml
代码
1.
<
sourceDirectory
>
src/main/java</
sourceDirectory
>
2.
<
scriptSourceDirectory
>
src/main/scripts</
scriptSourceDirectory
>
3.
<
testSourceDirectory
>
src/test/java</
testSourceDirectory
>
4.
<
outputDirectory
>
target/classes</
outputDirectory
>
5.
<
testOutputDirectory
>
target/test-classes</
testOutputDirectory
>
通常情况下我们只需要进行如下配置就足可以应付当前的测试需求了:
xml
代码
1.
<
reporting
>
2.
<
outputDirectory
>
target/site</
outputDirectory
>
3.
<
plugins
>
4.
<
plugin
>
5.
<
groupId
>
org.codehaus.mojo</
groupId
>
6.
<
artifactId
>
cobertura-maven-plugin</
artifactId
>
7.
</
plugin
>
8.
</
plugins
>
9.
</
reporting
>
当
QA
拿到
test case
运行的
coverage reporting
时,通常希望能够进行打包以和开发人员取得联系,本人目前尚未找到合适的
Maven
打包方法,由于在
Maven2
中支持执行
Ant
脚本,因此我在这里为
build
节点中的
plugins
节点提供了一个用
ant
脚本写的
plugin
,在
Maven
命令行通过执行
site
命令便可以将最后的测试报告(包括测试代码覆盖率和测试用例的运行情况
reports
)进行打包
xml
代码
1.
<
plugin
>
2.
<
artifactId
>
maven-antrun-plugin</
artifactId
>
3.
<
executions
>
4.
<
execution
>
5.
<
phase
>
site</
phase
>
6.
<
configuration
>
7.
<
tasks
>
8.
<
copy
todir
="target/classes"
>
9.
<
fileset
dir
="src/main/java"
>
10.
<
include
name
="**/*.java"
/>
11.
</
fileset
>
12.
</
copy
>
13.
<
jar
destfile
="target/cover-test-result.zip"
>
14.
<
fileset
dir
="target/site"
>
15.
<
include
name
="**/*.html"
/>
16.
<
include
name
="**/*.css"
/>
17.
<
include
name
="**/*.txt"
/>
18.
<
include
name
="**/*.png"
/>
19.
<
include
name
="**/*.js"
/>
20.
</
fileset
>
21.
</
jar
>
22.
</
tasks
>
23.
</
configuration
>
24.
<
goals
>
25.
<
goal
>
run</
goal
>
26.
</
goals
>
27.
</
execution
>
28.
</
executions
>
29.
</
plugin
>
继续说
Cobertura
的附加配置:
通过上面的配置,我们已经可以对一个工程进行代码覆盖率测试了,但是
Cobertura
在你没有声明
test case
不用分析覆盖率的情况下,他会连同
test case
一起分析覆盖率,尽管这样不会影响我们整个工程的代码覆盖率,但是在生成的报告中多出一个
testcase
来,总让人感觉不是很舒服,因此,你可以采用
Cobertura
的一些附加配置来限制那些不用进行覆盖率测试的类,具体做法如下:
xml
代码
1.
<
plugin
>
2.
<
groupId
>
org.codehaus.mojo</
groupId
>
3.
<
artifactId
>
cobertura-maven-plugin</
artifactId
>
4.
<
configuration
>
5.
<
instrumentation
>
6.
7.
8.
<
excludes
>
9.
<
exclude
>
**/*Test.class</
exclude
>
10.
</
excludes
>
11.
</
instrumentation
>
12.
</
configuration
>
13.
<
executions
>
14.
<
execution
>
15.
<
goals
>
16.
<
goal
>
clean</
goal
>
17.
</
goals
>
18.
</
execution
>
19.
</
executions
>
20.
</
plugin
>
二
命令行模式
参考官方文档:
http://cobertura.sourceforge.net/commandlinereference.html
1
插桩
cobertura-instrument.sh
[ CODE_SOURCE_DIR | *.jar]
--datafile=*.ser
会直接替换原有的
class
文件
2
合并
cobertura-merge.sh --datafile cobertura.ser 1.ser 2.ser…
合并到第一个文件中
3
产生报告
cobertura-report.sh --datafile *.ser --destination DIR --basedir SOURCE_CODE
生成报告文件到某个目录,默认为html
--format xml :
报告生成xml
文件
-Dnet.sourceforge.cobertura.datafile=${basedir}/cobertura.ser
指定生成的覆盖率文件生成的路径
分享到:
相关推荐
Cobertura是一款强大的Java代码覆盖率工具,用于度量软件测试的充分性。它通过分析类文件,跟踪代码执行情况,从而提供详细的测试覆盖率报告。在软件开发过程中,测试覆盖率是评估测试质量的重要指标,它可以帮助...
总的来说,"Junit+ant+cobertura示例"是一个展示如何使用JUnit进行单元测试,通过Ant进行自动化构建,并利用Cobertura进行代码覆盖率分析的实践案例。这样的组合可以帮助开发者更高效地管理和提升代码质量,确保软件...
Cobertura 代码覆盖率测试工具介绍 Cobertura 是一种开源测试工具,它通过检测基本的代码,并观察在测试包运行时执行了哪些代码以及哪些代码没有执行,来测量测试覆盖率。除了找出未测试到的代码并发现 BUG 外,...
Cobertura是一款强大的Java代码覆盖率测试工具,它的主要任务是对Java源代码进行度量,以确定测试套件在运行时覆盖了多少代码。这个过程对于确保软件的质量和完整性至关重要,因为全面的测试覆盖率可以帮助开发者...
**Cobertura 1.9.4.1:单元测试覆盖率工具详解** Cobertura 是一个开源的 Java 代码覆盖率工具,主要用于衡量软件项目中单元测试的覆盖程度。版本 1.9.4.1 是该工具的一个稳定版本,它为开发者提供了详细的信息,...
Cobertura 代码覆盖率工具详解 Cobertura 是一个流行的代码覆盖率工具,用于衡量 Java 应用程序的代码覆盖率。它可以生成详细的报告,帮助开发者了解代码的测试覆盖率,从而提高代码的质量。 什么是代码覆盖率? ...
Cobertura是一款开源的Java代码覆盖率工具,它用于测量Java程序单元测试的覆盖率。这个"cobertura-1.9.4.1-src.zip"压缩包包含的是Cobertura 1.9.4.1版本的源代码。源代码是任何软件开发的基础,它允许开发者深入...
标题中的“用 Cobertura 测量测试覆盖率”指的是在软件开发过程中使用 Cobertura 工具来评估代码的测试覆盖率。测试覆盖率是衡量测试质量的重要指标,它表示代码中被测试用例执行到的比例。Cobertura 是一个开源的 ...
【使用Cobertura统计单元测试覆盖率】 在软件开发过程中,单元测试是确保代码质量的重要环节。它能够帮助我们发现潜在的错误,提高代码的可维护性。然而,仅仅编写单元测试是不够的,我们还需要知道这些测试覆盖了...
Cobertura 1.9.1 是一个历史悠久的代码覆盖率工具,主要在Java开发环境中使用。它能够帮助开发者测量和报告程序代码的测试覆盖率,即多少代码被单元测试执行过。这对于确保软件的质量和可靠性至关重要,因为未经过...
【标题】:“Cobertura测试代码” 在软件开发过程中,测试是至关重要的环节,它确保了代码的质量和稳定性。Cobertura是一款Java语言的代码覆盖率工具,它可以帮助开发者量化单元测试的效果,通过度量代码被测试覆盖...
### Java Cobertura:代码覆盖率工具详解 #### 一、引言 在软件开发过程中,确保代码的质量至关重要。其中,测试覆盖率是衡量代码质量的关键指标之一。Cobertura是一款开源的Java代码覆盖率工具,它能够帮助开发者...
Cobertura工具包是一款用于Java应用程序的代码覆盖率工具,它能够帮助开发者衡量单元测试对代码的覆盖程度。在软件开发中,确保代码的覆盖率是一项重要的质量指标,因为高覆盖率通常意味着更多的代码得到了测试,...
【标题】:“gradle-cobertura-plugin-1.0.zip”和“javafx-maven-plugin.zip” 【描述】中提到的两个压缩包文件涉及到的是Java开发中的自动化构建工具和测试覆盖率工具。首先,“gradle-cobertura-plugin-1.0.zip...
Cobertura是一款开源的Java代码覆盖率工具,它用于衡量你的测试套件覆盖了多少源代码。在软件开发过程中,代码覆盖率是衡量测试质量的一个重要指标,它可以帮助开发者了解测试的全面性和有效性。Cobertura通过静态...
《Python库:lcov_cobertura-1.3.macosx-10.8-intel.exe详解》 在软件开发领域,尤其是Python编程环境中,库是开发者的重要工具,它们提供了丰富的功能,帮助我们高效地完成任务。今天我们将深入探讨一个名为`lcov_...
Cobertura可用于分析Java代码的测试覆盖率。Cobertura根据没有被测试覆盖的代码生成基于HTML的报告。 Cobertura提供可用于插装、检查和测试代码的工具。通过监控可测试的代码,Cobertura允许你使用你选择的测试框架...
cobertura-2.1.1.jar下载
Cobertura is a free Java code coverage reporting tool. It is based on jcoverage 1.0.5. See the Cobertura web page and wiki for more details. Since 2.0.0, Cobertura versions follow the Semantic ...