java单元测试代码覆盖率,好的测试要追求对代码的覆盖率,以下

  java单元测试代码覆盖率,好的测试要追求对代码的覆盖率,以下

  **

  使用coverage工具测试python单元的覆盖率* *

  覆盖范围概述

  覆盖率是一个统计Python代码覆盖率的工具,它可以检测测试代码如何向被测代码显示覆盖率。覆盖率支持分支覆盖率统计,可以生成HTML/XML报告。

  官方文件:http://coverage.readthedocs.org/en/latest/

  资料来源:http://pypi.python.org/pypi/coverage

  您也可以在easy_install或pip中安装easy _ install服务。

  安装后,如果在Python27Scripts文件夹中生成了coverage.exe等工具,并且在路径中添加了环境变量C:Python27Scripts,请在命令行中使用coverage命令。

  使用颜色

  1.命令行模式

  详情见http://coverage.readthedocs.io/en/latest/cmd.html。

  您可以使用help命令来显示帮助。$覆盖范围帮助

  重要的命令如下。

  a .运行

  在进行代码覆盖率统计时,只需要在覆盖率的运行参数中进行统计代码即可。

  $ coverage运行test.py arg1 arg2

  Test.py是测试脚本,arg1 arg2是运行test.py的必需参数.运行之后,覆盖率统计结果文件(数据文件):覆盖率将被自动创建。

  报告

  如果有覆盖率统计结果文件,只需重新运行报表参数,就可以通过命令查看统计结果。

  clip_image001

  Stmts/Miss表示语句总数/未执行的语句数。

  cover=(stmt-miss)/stmt

  c.超文本标记语言

  生成html测试报告。

  $ coverage html -d covhtml

  生成的报告与代码直接相关,突出显示覆盖和未覆盖的代码,并支持排序。指定html文件夹。请用这个地址预览它。http://nedbatchelder.com/code/coverage/sample _ html/

  效果如下。

  测试文件:

  突出显示覆盖和未覆盖的代码。覆盖的代码显示为绿色,未覆盖的代码显示为红色。

  注意:使用命令coverage run test.py运行的文件将聚合项目中的所有文件,包括测试文件本身。运行参数的子参数—源可以指定要聚合的文件。$ toteragerun-source=totem . py test . py只能聚合totem。

  联合收割机

  您可以合并多个目标百分比数据文件,将要合并的目标百分比结果数据文件放在同一个目录中,然后运行覆盖率合并。但是,对目录中结果文件名的格式有要求。合并的文件必须具有相同的前缀、名称(通常是计算机名)和编号(通常是进程ID)。例如,coverage . 75 FEC 5d 4 B3 adaaaa . 58676 . 68668686667

  为了方便合并结果,如果在运行参数之前运行统计,在运行参数之后添加-p参数,将自动生成满足合并条件的结果文件。

  e.run参数的子参数1:分支统计分支覆盖率

  如果代码中的分支可以跳转到多行,coverage.py会跟踪每个分支是否有目标。

  $覆盖率运行-分支测试. py

  clip_image006

  Branch/BrPart表示分支数/未执行的分支数。

  f.run参数的子参数2:并行模式

  $覆盖率运行-并行模式测试. py

  让覆盖率监控被测代码的子过程覆盖率。如果被测试的代码是多进程的,比如一些web程序,就必须使用这个参数。

  2.API模式

  除了使用命令行,还可以直接调用python代码中的覆盖率模块来进行代码覆盖率统计。使用方法也很简单:

  导入覆盖

  cov=coverage . coverage(source=[ totest ])

  cov.start()).

  #代码

  cov.stop())

  cov.report())

  cov.html _报告(directory=cov html ))

  Source指定要统计的文件,source=[total]只统计totest.py的覆盖率

  指定从目录生成html的路径

  使用覆盖率来计算web程序覆盖率。

  Web程序通常在启动服务后循环接收消息,不会自动退出。覆盖率使用atexit模块在实现中注册回调函数,并在退出Python时将内存覆盖率结果写入一个文件。的测试脚本必须正常结束,或者以SIGINT 2信号结束,才能从atexit开始,无法得到覆盖结果。因为CTRL C发送SIGINT 2信号,所以前台启动的服务可以在CTRL C停止后输出结果。

java单元测试代码覆盖率,好的测试要追求对代码的覆盖率,以下