读书人

cobertura-1.9.4.1组合tomcat生成测试

发布时间: 2012-11-04 10:42:41 作者: rapoo

cobertura-1.9.4.1结合tomcat生成测试报告

1. 下载 cobertura-1.9.4.1.zip

2. 将cobertura.jar、lib下的jar包copy到$TOMCAT_HOME/lib下。

3. 将coberturaFlush.war copy到$TOMCAT_HOME/webapps下。

4. 编写build.properties

?

# The source code for the examples can be found in this directorysrc.dir=/home/a/project/src/mbr_luna_subway_20120221_jan/subway-biz/src# The path to cobertura.jarcobertura.dir=/home/a/project/cobertura-1.9.4.1# Classes generated by the javac compiler are deposited in this directoryclasses.dir=/home/a/project/subway-bizservice/WEB-INF/classes# Instrumented classes are deposited into this directoryinstrumented.dir=/home/a/project/src/bak# All reports go into this directoryreports.dir=/home/a/project/result# Coverage reports are deposited into these directoriescoverage.html.dir=${reports.dir}/cobertura-html#server.bin.dir=/usr/local/dev-tomcat2.0-api-mobile/binserver.bin.dir=/home/a/project/tomcattop_bserv/binserName=cobertura.ser#flush urlflush.url=http://10.232.132.58:47080/coberturaFlush/flushCoberturacoverage.xml.dir=${reports.dir}/cobertura-xmlcoverage.summaryxml.dir=${reports.dir}/cobertura-summary-xmlcoverage.html.dir=${reports.dir}/cobertura-html

?? 注意:flush.url 是你要测试的tomcat下对应的coberturaFlush.war中的servlet

?

5.编写build.xml

<?xml version="1.0" encoding="UTF-8"?><project name="cobertura.examples.basic" default="coverage-report" basedir="."><description>    Cobertura - http://cobertura.sourceforge.net/    Copyright (C) 2003 jcoverage ltd.    Copyright (C) 2005 Mark Doliner <thekingant@users.sourceforge.net>    Cobertura is licensed under the GNU General Public License    Cobertura comes with ABSOLUTELY NO WARRANTY    </description><property file="build.properties" /><path id="cobertura.classpath"><fileset dir="${cobertura.dir}"><include name="*.jar" /><include name="lib/*.jar"/></fileset></path><taskdef classpathref="cobertura.classpath" resource="tasks.properties"/><target name="init"><mkdir dir="${classes.dir}" /><mkdir dir="${instrumented.dir}" /><mkdir dir="${coverage.xml.dir}" /><mkdir dir="${coverage.html.dir}" /></target><target name="instrument" depends="init"><!--Remove the coverage data file and any old instrumentation.--><delete file="${serName}"/><!--Instrument the application classes, writing theinstrumented classes into ${build.instrumented.dir}.--><cobertura-instrument todir="${instrumented.dir}" datafile="${serName}"><!--The following line causes instrument to ignore anysource line containing a reference to log4j, for thepurposes of coverage reporting.--><ignore regex="org.apache.log4j.*" /><fileset dir="${classes.dir}"><!--Instrument all the application classes, butdon't instrument the test classes.--><include name="**/*.class" /></fileset></cobertura-instrument><copy todir="${classes.dir}" overwrite="true">          <fileset dir="${instrumented.dir}">            <include name="**/*.class"/>          </fileset>        </copy><copy file="${serName}" todir="${server.bin.dir}"  overwrite="true" /></target><target name="coverage-report" depends="merge"><!--Generate an XML file containing the coverage data usingthe "srcdir" attribute.--><cobertura-report  datafile="total.ser" srcdir="${src.dir}" destdir="${coverage.html.dir}" format="html" /></target><!--flush data to serfile--><target name="flush" ><get src="${flush.url}" dest="log.txt"/><sleep milliseconds="3000"/></target><target name="alternate-coverage-report"><!--Generate a series of HTML files containing the coveragedata in a user-readable form using nested source filesets.--><cobertura-report destdir="${coverage.html.dir}"><fileset dir="${src.dir}"><include name="**/*.java"/></fileset></cobertura-report></target><target name="merge" depends="flush"><copy todir="${basedir}" overwrite="true">          <fileset dir="${server.bin.dir}">            <include name="**/*.ser"/>          </fileset>        </copy>   <cobertura-merge datafile="total.ser">           <fileset dir="${basedir}">           <include name="*.ser"/>       </fileset>     </cobertura-merge><echo message="merge file"/>   </target><target name="clean" description="Remove all files created by the build/test process."><delete dir="${classes.dir}" /><delete dir="${instrumented.dir}" /><delete dir="${reports.dir}" /><delete file="cobertura.log" /><delete file="cobertura.ser" /></target></project>

?

6. 运行命令ant。原理:

?? 1)将待统计的代码的class文件重新生成class,添加了统计代码的代码。

?? 2) 运行测试用例时,会将内容统计到$TOMCAT_HOME/bin/cobertura.ser中。

?? 3) 运行结束之后,通过调用http://10.232.132.58:47080/coberturaFlush/flushCobertura,将serverlet中统计到的信息序列化到cobertura.ser文件中。

?? 4) 最后通过cobertura-report.sh 这个命令生成报告。

?

7. 运行测试用例。

?

8. 重新运行ant命令,生成测试报告。

读书人网 >编程

热点推荐