我该如何以编程方式访问coverage.py的结果?

6
使用 coverage.py,我可以生成如下报告:
Name                      Stmts   Miss  Cover   Missing
-------------------------------------------------------
my_program.py                20      4    80%   33-35, 39
my_other_module.py           56      6    89%   17-23
-------------------------------------------------------
TOTAL                        76     10    87%

如何以编程方式访问覆盖结果数据中的87值,并将其用作另一个程序的输入?


在API中有一个名为CoverageData::run_infos()的函数,它将返回作为字典收集的单个运行期间的数据。希望这可以帮助到您。 - harry
1
这是一个非常有价值的问题,可以在CI系统上实现100%的强制执行。 - OozeMeister
1个回答

10
我假设您已经运行了
$ coverage run my_program.py arg1 arg2

我想使用它所测量的数据,并且与IT技术有关。 Coverage.report() 返回一个浮点数,表示总计覆盖率(你可以接受它,或者将其四舍五入为整数百分比)。

但是这个函数会在屏幕上打印一份报告。为了避免这种情况,我们将打开一个空设备文件对象来吸收它。

import coverage
import os
cov = coverage.Coverage()
cov.load()

with open(os.devnull, "w") as f:
    total = cov.report(file=f)

print("Total: {0:.0f}".format(total))

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接