Python coverage.py的使用笔记

python的coverage的module能够生成python代码的coverage数据. 在使用coverage的一些心得记录一下.

Coverage.py — Coverage.py 7.3.2 documentation (Coverage的官方文档)

1.安装

python3 -m pip install coverage

2.coverage的使用

按照官网说明,直接将以前commnad line中执行python3 的地方换成coverage run就可以了.


#If your test runner command starts with “python”, just replace the initial “python” with “coverage run”.

python3 something.py #no coverage

coverage run something.py #coverage

python3 -m amodule #no coverage

coverage run -m amodule #coverage

几点注意事项:

  • 执行coverage run的时候,如果是python程序按顺序一个接一个的在前台执行, 使用 “--append” option对coverage数据进行追加操作,避免后面的命令将之前走过coverage覆盖了.
  • 如果是server端的程序需要多进程后台运行, 建议使用 run --parallel-mode 避免多个进程互相干扰coverage收集数据, --parallel-mode不能与--append同时使用. 我在没有使用--parallel-mode的时候会出现 “ no such data table” 之类的错误
  • Command line usage — Coverage.py 7.3.2 documentation

3.coverage的报告的生成

coverage回在执行目录下生成一个.coverage的文件,就是coverage收集的数据表. 

执行 coverage report -m就可以生存文字报告, coverage html 可以生成html的格式.

注意对于run --parallel-mode回生成多个.coverage-xxx文件

在report之前,先调用 coverage combine将不同进程的coverage数据合并起来后,在执行coverage report生成报告

4.coverage erase

这个命令是清除之前的coverage数据, 这个命令不是Block模式的,也就是说你在bash中执行这个命令后,如果马上调用coverage run 的话,就会产生数据文件的冲突,产生错误“ no such data table”之类的. 需要sleep 1 等待coverage erase完数据

coverage erase
sleep 1 # Waiting for erase data
coverage run --parallel-mode server.py 1 &
coverage run --parallel-mode server.py 2 &

# stop server

coverage combine
coverage report -m

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值