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

时间:2016-02-05 12:46:50

标签: python coverage.py

使用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%

如何以编程方式从coverage结果数据中访问87的值,以用作其他程序的输入?

1 个答案:

答案 0 :(得分:5)

我会假设您已经运行

$ coverage run my_program.py arg1 arg2

并希望使用它测量的数据。 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))