Cobertura命令行方式测试覆盖率

最开始想在Eclipse中用Cobertura,结果插件安装不上,然后在Eclipse中用jar包试,运行出来有错,Cobertura 好像不支持java1.8,最后用命令行成功。

下载Cobertura

下载网址:http://cobertura.github.io/cobertura/.
解压下载的压缩文件。如图cobertura

准备工作

  1. 在eclipse中新建一个java项目,添加被测文件,利用evosuite插件生成测试数据,移动到和被测文件同一包下,修改错误。如图新建项目
  2. 进入该项目的工作空间,将bin和src文件复制到一个新的文件夹cobertura,并将src文件移动到bin目录下。
  3. 将前面解压后的cobertura-2.1.1文件夹放入cobertura目录下,并将cobertura-2.1.1下的lib文件夹拷贝到cobertura/bin目录下。如图cobertura文件夹
    bin文件夹

测试覆盖率

  1. 生成代码覆盖率的代码和cobertura.ser文件。
    到bin目录下,运行命令:
    F:\cobertura\cobertura-2.1.1\cobertura-instrument.bat --destination instrumented source
    生成instrumented文件夹和cobertura.ser文件,instrumented中包含着class文件,如图运行命令
    生成文件
  2. 根据cobertura.ser文件运行测试
    继续运行命令:
    java -cp lib/junit-4.11.jar;lib/hamcrest-core-1.3.jar;lib/cobertura-2.1.1.jar;lib/slf4j-api-1.7.5.jar;instrumented;.; -Dnet.sourceforge.cobertura.datafile=cobertura.ser org.junit.runner.JUnitCore source.cobertura_ESTest
    运行测试命令
  3. 生成报告
    继续运行命令:
    F:\cobertura\cobertura-2.1.1\cobertura-report.bat --format html -datafile=cobertura.ser --destination report src
    生成报告命令
    此时,bin目录下自动生成report文件夹,点击里面的index.html就可以看到覆盖率。如图
    report文件夹
    报告
    点击每个类进去,可以看到每条语句的执行情况。

[参考文档]

关于如何使用Cobertura的命令行方式测试覆盖率,还可以参考以下博客
https://blog.csdn.net/zxdfc/article/details/52198202.
https://blog.csdn.net/lyliyongblue/article/details/44708541.
http://www.itkeyword.com/doc/2634260868462837549/tomcat-command-reportclasshtml.
Cobertura 好像不支持java1.8https://blog.csdn.net/AlbertFly/article/details/89319148#commentBox.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章