欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Coverage官方手册翻译

程序员文章站 2024-02-27 14:15:45
...

下面是官方手册的翻译

Coverage手册

Coverage命令行使用

当你安装 coverage.py。将一个名为coverage的命令行脚本py放在Python脚本目录中。为了帮助多版本安装,它还将创建coverage2或coverage3别名和 coverage-X.Y 别名,这取决于您使用的Python版本。例如,在Python 2.7上安装时,您将能够在命令行上使用coveragecoverage2coverage-2.7
coverage.py 有许多命令来决定执行的操作:

  • run – 运行Python程序并收集执行数据。
  • report - 报告覆盖率结果。
  • html - 生成带有覆盖率结果的带注释的HTML清单。
  • xml - 生成带有覆盖率结果的XML报告。
  • annotate - 用覆盖结果注释源文件。
  • erase - 删除先前收集的覆盖率数据。
  • combine - 将一些数据文件组合在一起。
  • debug - 获取诊断信息。

帮助可用的帮助命令,或与——help开关上任何其他命令:

$ coverage help
$ coverage help run
$ coverage run --help

coverage.py 的版本信息可以使用coverage --version进行显示。
通过使用–rcfile= file命令行开关指定配置文件,任何命令都可以使用该配置文件。您可以在命令行上设置的任何选项也可以在配置文件中设置。这可能是控制coverage.py的更好方法,因为配置文件可以检入到源代码控制中,并且可以提供其他调用技术(如测试运行器插件)可能不提供的选项。有关详细信息,请参阅配置文件。

执行

使用run命令运行Python程序来收集执行数据:

$ coverage run my_program.py arg1 arg2
blah blah ..your program's output.. blah blah

您的程序运行起来就像使用Python命令行调用它一样。文件名后的参数像往常一样在 sys.argv 中传递给程序。您可以使用 -m 开关指定一个可导入的模块名,而不是提供文件名,就像Python -m开关所做的那样:

$ coverage run -m packagename.modulename arg1 arg2
blah blah ..your program's output.. blah blah

如果您想要度量分支覆盖率,请使用 ——branch 标志。否则,只测量语句覆盖率。可以使用 ——source——include 和——省略开关指定要度量的代码。有关解释的详细信息,请参见指定源文件。记得在run之后放run选项,但是在程序调用之前:

$ coverage run --source=dir1,dir2 my_program.py arg1 arg2
$ coverage run --source=dir1,dir2 -m packagename.modulename arg1 arg2

在默认情况下, Coverage.py 可以度量多线程程序。如果您使用的是更奇特的并发性,比如 multiprocessinggreenleteventletgevent 库,那么 coverage.py 将会非常混乱。使用 ——concurrency 开关来正确地度量使用这些库的程序。将其赋值为 multiprocessingthreadgreenleteventletgevent 。线程以外的值需要C扩展。
如果使用的是 ——concurrency=multiprocessing ,则必须在配置文件中设置其他选项。命令行上的选项不会传递给多处理创建的进程。最佳实践是对所有选项使用配置文件。

如果使用的是 ——concurrency=multiprocessing ,则必须在配置文件中设置其他选项。命令行上的选项不会传递给多处理创建的进程。最佳实践是对所有选项使用配置文件。

默认情况下, coverage.py 不度量Python解释器安装的代码,例如标准库。如果您希望度量该代码和您自己的代码,那么添加 -L (或 –pylib )标志。

如果您的覆盖率结果似乎忽略了您知道已经执行的代码,那么尝试再次运行带有–timid标志的coverage.py。这使用了一种更简单但更慢的跟踪方法。使用DecoratorTools(包括TurboGears)的项目需要使用 –timid 才能得到正确的结果。

如果您在一个多进程程序中测量覆盖率,或者在多个机器上测量,那么您将希望 –parallel-mode 开关在测量期间保持数据独立。请参阅下面的组合数据文件。

警告

在执行期间,coverage.py可能会警告您它检测到的可能影响度量过程的条件。可能的警告包括:

  • 跟踪功能更改,测量可能错误:XXX(跟踪更改)
    覆盖率度量依赖于称为trace函数的Python设置。产品中的其他Python代码可能会更改该功能,从而影响覆盖率。py的测量。此警告表示已经发生了这种情况。消息中的XXX是新的跟踪函数值,它可能提供原因的线索。
  • 模块XXX没有Python源码(模块-非Python)
    您要求coverage.py度量模块XXX,但是一旦导入该模块,结果发现它没有对应的.py文件。如果没有.py文件,cover .py就不能报告缺行。
  • 未导入模块XXX(未导入模块)
    您要求coverage.py度量模块XXX,但是您的程序从未导入它。
  • “未收集数据(未收集数据)”
    coverage.py运行您的程序,但是在执行时不度量任何行。这可能是因为您要求只度量从未运行的模块,或者出于其他原因。
  • “XXX模块之前已导入,但未被测量(模块未被测量)”
    您要求coverage.py度量模块XXX,但是当覆盖率开始时,它已经被导入。这意味着coverage.py无法监视其执行。
    –include被忽略,因为-source被设置(include-ignore) "
    可以使用disable_warnings配置设置禁用单个警告。若要静默“未收集数据”,请将此添加到您的.coveragerc文件中:
[run]
disable_warnings = no-data-collected

数据文件

Coverage.py在一个名为“.coverage”的文件中收集执行数据。如果需要,您可以使用COVERAGE_FILE环境变量设置一个新文件名。这可以包括到另一个目录的路径。

默认情况下,程序的每次运行都以空数据集开始。如果您需要多次运行程序以获得完整数据(例如,因为您需要提供分离选项),那么您可以在run命令中使用 -a 标志累积数据。

若要擦除收集的数据,请使用擦除命令:

$ coverage erase

结合数据文件

如果您需要从不同的机器或进程中收集覆盖率数据,coverage.py可以将多个文件合并到一个文件中进行报告。

一旦你已经创建了这些文件的数量,你可以把他们都复制到一个单一的目录,并使用combine命令把他们合并到一个.coverage数据文件:

$ coverage combine

您也可以命名目录或文件在命令行:

$ coverage combine data1.dat windows_data_files/

coverage.py将从这些地方收集数据并合并它们。如果使用命令行参数,则不会搜索当前目录。如果还需要当前目录中的数据,请在命令行中显式地命名它。

当coverage.py在目录中查找要组合的数据文件时,即使是当前目录,它也只读取具有特定名称的文件。它查找命名与数据文件相同的文件(默认为“.coverage”),并带有虚线后缀。以下是一些可以合并的数据文件的例子:

.coverage.machine1
.coverage.20120807T212300
.coverage.last_good_run.ok

忽略现有的组合数据文件并重新写入。如果您想要使用combine将结果累积到.coverage数据文件中,并运行若干次,请使用combine命令中的 –append 开关。在版本4.2之前,这种行为是默认的。

run -parallel-mode 开关会自动为每次运行创建单独的数据文件,以后可以将这些文件组合在一起。文件名包括机器名称、进程id和一个随机数:

.coverage.Neds-MacBook-Pro.local.88335.316857
.coverage.Geometer.8044.799674

如果不同的机器在其文件系统中的不同位置运行您的代码,那么coverage.py将不知道如何组合数据。您可以告诉coverage.py不同的位置如何与配置文件中的[paths]部分相关联。详情请参阅[路径]。

如果无法读取任何数据文件,coverage.py将打印一个警告,指示该文件和问题所在。

报告

coverage.py提供了几种类型的报告,包括报告、html、注释和xml命令。他们有许多共同的选择。

如果您希望报告所收集数据的子集,则命令行参数是要报告的模块或文件名。

–include–omit 标志指定文件名模式列表。它们控制要对哪些文件进行报告,在指定源文件时将对其进行更详细的描述。

-i–igno-errors 开关告诉coverage.py忽略在寻找要报告的源文件时遇到的问题。如果丢失了一些文件,或者如果Python执行非常复杂,没有真正的源文件就合成了文件名,那么这就很有用。

如果您提供一个 –fail-under 值,则将覆盖的总百分比与该值进行比较。如果小于,命令将退出,状态代码为2,表示总覆盖率低于目标。这可以用作通过/失败条件的一部分,例如在持续集成服务器中。此选项不能用于注释。

报告总结

最简单的报告是由报告生成的文本摘要:

$ coverage report
Name                      Stmts   Miss  Cover
---------------------------------------------
my_program.py                20      4    80%
my_module.py                 15      2    86%
my_other_module.py           56      6    89%
---------------------------------------------
TOTAL                        91     12    87%

对于每个被执行的模块,报告显示了可执行语句的计数,那些被遗漏的语句的数量,以及结果的覆盖率,用百分比表示。

-m 标志还显示缺少语句的行号:

$ coverage report -m
Name                      Stmts   Miss  Cover   Missing
-------------------------------------------------------
my_program.py                20      4    80%   33-35, 39
my_module.py                 15      2    86%   8, 12
my_other_module.py           56      6    89%   17-23
-------------------------------------------------------
TOTAL                        91     12    87%

您可以限制报告只有特定的文件命名他们在命令行:

$ coverage report -m my_program.py my_other_module.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%

–skip-covered 开关将会忽略任何100%覆盖的文件,让你专注于仍然需要注意的文件。
其他常见的报表选项在上面的报告中进行了描述。

HTML注释

coverage.py 可以为源代码注释哪些行被执行了,哪些行没有被执行。html命令创建一个html报告,类似于报告摘要,但作为html文件。每个模块名称链接到经过修饰的源文件,以显示每行的状态。

这是一个报告示例。

行被突出显示为绿色表示已执行,红色表示已丢失,灰色表示已排除。文件顶部的计数是打开和关闭高亮显示的按钮。

许多键盘快捷键可用于浏览报表。单击右上方的键盘图标可以看到完整的列表。

报告的标题可以通过配置文件的[html]部分中的标题设置来设置,或者通过命令行中的——title开关来设置。

如果您希望为HTML报告使用不同的样式,您可以通过在配置文件的[HTML]部分指定一个CSS文件来提供您自己的CSS文件来应用。详情请参阅[html]。
参数-d指定了一个输出目录,默认为“htmlcov”:

$ coverage html -d coverage_html

其他常见的报表选项在上面的报表中进行了描述。

生成HTML报告可能非常耗时。HTML报告中存储的是一个数据文件,用于加速下一次报告的速度。如果在同一目录中生成一个新报表,coverage.py将跳过生成未更改的页面,从而使过程更快。

–skip-covered 开关将会忽略任何100%覆盖的文件,让你专注于仍然需要注意的文件。

文本注释

注释命令生成源代码的文本注释。通过指定输出目录的 -d 参数,每个Python文件都成为该目录中的文本文件。如果没有 -d ,文件将被写入与原始Python文件相同的目录中。
每一行源的覆盖率状态用字符前缀表示:

> executed
! missing (not executed)
- excluded

例如:

  # A simple function, never called with x==1
> def h(x):
      """Silly function."""
-     if 0:   #pragma: no cover
-         pass
>     if x == 1:
!         a = 1
>     else:
>         a = 2

其他常见的报表选项在上面的报告中进行了描述。

XML报告

xml命令将覆盖率数据写入“coverage.xml”。与Cobertura兼容的格式的xml文件。
您可以使用 -o 开关指定输出文件的名称。
其他常见的报表选项在上面的报表中进行了描述。

诊断

debug命令显示内部信息以帮助诊断问题。如果您正在报告一个关于覆盖率的bug。包括这个命令的输出通常可以帮助:

$ coverage debug sys > please_attach_to_bug_report.txt

有三类资料可供参考:

  • config: 显示范围的配置
  • sys: 显示系统配置
  • data: 显示收集的覆盖率数据的摘要

–debug 选项对所有命令都可用。它指示coverage.py记录其操作的内部细节,以帮助诊断问题。它采用逗号分隔的选项列表,每个选项表示要记录的操作的一个方面:

  • callers: 使用到该点的调用者堆栈跟踪对每个调试消息进行注释。
  • config: 在启动之前,转储所有配置值。
  • dataio:当读取或写入任何数据文件时的日志。
  • dataop:当数据被添加到CoverageData对象时进行日志记录。
  • multiproc:记录多进程的启动和停止。
  • pid:用进程id注释所有警告和调试输出。
  • plugin: 打印关于插件操作的信息。
  • process: 显示进程创建信息和当前目录中的更改。
  • sys: 在启动之前,转储所有系统和环境信息,就像覆盖率调试系统一样。
  • trace: 打印关于是否跟踪文件的每个决定。对于没有被跟踪的文件,也给出了原因。
    还可以使用 COVERAGE_DEBUG 环境变量设置调试选项,该变量是这些选项的逗号分隔列表。
    调试输出将转到stderr,除非 COVERAGE_DEBUG_FILE 环境变量命名了一个不同的文件,该文件将被追加到。

Coverage API

Coverage.py 的API非常简单,包含在一个称为coverage的模块中。大部分接口都在覆盖中。保险类。覆盖率对象上的方法大致对应于命令行接口中可用的操作。例如,一个简单的用法是:

import coverage
cov = coverage.Coverage()
cov.start()

# .. call your code ..

cov.stop()
cov.save()
cov.html_report()

CoverageData类提供对存储在coverage.py数据文件中的覆盖率数据的访问。

Coverage class

class coverage.Coverage(data_file=None, data_suffix=None, cover_pylib=None, auto_data=False, timid=None, branch=None, config_file=True, source=None, omit=None, include=None, debug=None, concurrency=None)
对coverage.py的程序性访问。
用法:

from coverage import Coverage
cov = Coverage()
cov.start()
#.. call your code ..
cov.stop()
cov.html_report(directory='covhtml')
  • data_file是要使用的数据文件的基本名称,默认为“.coverage”。data_suffix(带有点)被附加到data_file以创建最终的文件名。如果data_suffix为真,则创建一个包含机器和进程标识的后缀。
  • cover_pylib是一个布尔值,它决定是否测量安装在Python解释器中的Python代码。这包括Python标准库和解释器中安装的任何包。
  • 如果auto_data为真,那么当覆盖率测量开始时,任何现有的数据文件都将被读取,当测量停止时,数据将被自动保存。
  • 如果timid为真,那么将使用更慢、更简单的跟踪函数。这对于一些跟踪函数的操作会破坏更快的跟踪函数的环境非常重要。
  • 如果branch为真,那么除了通常的语句覆盖率之外,还将度量分支覆盖率。
  • config_file决定读取什么配置文件:
    • 如果是".coveragerc"的话,它被解释为好像它是真的,为了向后兼容性。
    • 如果是字符串,则是要读取的文件的名称。如果文件不能被读取,它是一个错误。
    • 如果为真,则尝试几个标准文件名(“.coveragerc”, “setup.cfg”, “tox.ini”)。找不到这些文件不是错误。
    • 如果为False,则不读取配置文件。
  • source是文件路径或包名的列表。只有位于由文件路径或包名指示的树中的代码才会被测量。
  • include和omit是文件名模式的列表。将度量匹配包含的文件,而不度量匹配省略的文件。每个参数还将接受单个字符串参数。
  • debug是一个字符串列表,指示需要哪些调试信息。
  • concurrency是一个字符串,指示在测量代码中使用的并发性库。如果不这样做,在使用这些库时,coverage.py将得到不正确的结果。有效的字符串是“greenlet”、“eventlet”、“gevent”、“multiprocessing”或“thread”(默认)。这也可以是这些字符串的列表。

analysis(morf)

像analysis2一样,但是不返回被排除的行号。

analysis2(morf)

分析模块。
morf是一个模块或文件名。它将被分析来确定它的覆盖统计。返回值为5元组:

  • 模块的文件名。
  • 可执行语句的行号列表。
  • 被排除语句的行号列表
  • 未运行的语句的行号列表(在执行时丢失)。
  • 缺行号的可读格式化字符串。
  • 分析使用源文件本身和当前测量的覆盖率数据。

annotate(morfs=None, directory=None, ignore_errors=None, omit=None, include=None)

注释模块列表。
morfs中的每个模块都有注释。源文件被写入到一个新文件中,该文件以“,cover”后缀命名,每一行都有一个标记作为前缀,表示该行的覆盖率。被覆盖的行有“>”,被排除的行有“-”,而丢失的行有“!”。
其他论点见 report()

clear_exclude(which=‘exclude’)

清除排除列表。

combine(data_paths=None, strict=False)

结合在一起的许多相似的命名的覆盖率数据文件。

所有名称以data_file开头的覆盖率数据文件(来自coverage()构造函数)将被读取,并合并到当前的测量中。

data_paths是应该组合数据的文件或目录列表。如果没有传递列表,那么来自当前数据文件(可能是当前目录)所指示的目录的数据文件将被合并。

如果strict为true,那么当没有要组合的数据文件时尝试组合是错误的。

新版本4.0:data_paths参数。
版本4.3中的新特性:严格参数。

erase()

删除以前收集的覆盖数据。
这将删除在此会话中收集的内存数据,并丢弃数据文件。

exclude(regex, which=‘exclude’)

从执行考虑中排除源代码行。

维护了许多正则表达式列表。每个列表选择在报表期间被不同处理的行。

它决定修改哪个列表。“排除”列表选择那些根本不被认为是可执行的行。“partial”列表表示没有使用分支的行。

regex是一个正则表达式。将正则表达式添加到指定的列表中。如果在一行中找到列表中的任何正则表达式,则在报告期间对该行进行特殊处理。

get_data()

收集收集到的数据。
还警告收集数据的各种问题。
返回一个coverage.CoverageData数据,收集的覆盖数据。
新版本4.0。

get_exclude_list(which=‘exclude’)

返回被排除的正则表达式模式的列表。
指示需要哪个列表。有关可用的列表及其含义,请参阅exclude()。

get_option(option_name)

从配置中获取一个选项。
option_name是一个冒号分隔的字符串,指示节和选项名。例如,在配置文件的[run]部分中的branch选项将会用“run:branch”来表示。
返回选项的值。
新版本4.0。

html_report(morfs=None, directory=None, ignore_errors=None, omit=None, include=None, extra_css=None, title=None, skip_covered=None)

生成一个HTML报告。
HTML被写入目录。文件”指数。“html”是概述的起点,带有指向各个模块更详细页面的链接。
extra_css是用于页面上的其他CSS文件的路径。它将被复制到HTML目录中。
标题是用作HTML报告标题的文本字符串(不是HTML)。
其他论点见 report()。
返回一个浮点数,即所覆盖的总百分比。

load()

从数据文件加载以前收集的覆盖率数据。

report(morfs=None, show_missing=None, ignore_errors=None, file=None, omit=None, include=None, skip_covered=None)

写一个总结报告归档。
morfs中列出了每个模块,包括语句计数、已执行语句、缺失语句和缺失行的列表。
include是文件名模式的列表。匹配的文件将包含在报表中。与省略匹配的文件将不包括在报告中。
如果skip_covered为真,不要报告100%覆盖率的文件。
返回一个浮点数,即所覆盖的总百分比。

save()

将收集的覆盖率数据保存到数据文件中。

set_option(option_name, value)

在配置中设置一个选项。
option_name是一个冒号分隔的字符串,指示节和选项名。例如,在配置文件的[run]部分中的branch选项将会用“run:branch”来表示。
value是选项的新值。这应该是一个合适的Python值。例如,对布尔值使用True,而不是字符串“True”。
举个例子:

cov.set_option("run:branch", True)

与此配置文件具有相同的效果:

[run]
branch = True

新版本4.0。

start()

开始测量代码覆盖率。
覆盖率测量只发生在调用start()后调用的函数中。与start()作用域相同的语句将不会被度量。
一旦调用了start(),最后还必须调用stop(),否则进程可能无法干净地关闭。

stop()

停止测量代码覆盖率。

xml_report(morfs=None, outfile=None, ignore_errors=None, omit=None, include=None)

生成覆盖结果的XML报告。
该报告与Cobertura报告兼容。
morfs中的每个模块都包含在报表中。outfile是写入文件的路径," - "将写入stdout。
其他论点见report()。
返回一个浮点数,即所覆盖的总百分比。

开始coverage.py自动

这个函数用于在Python启动时自动启动覆盖率测量。有关详细信息,请参见度量子流程。

coverage.process_startup()

在Python启动时调用这个函数来度量覆盖率。
如果定义了环境变量COVERAGE_PROCESS_START,则启动覆盖率度量。变量的值是要使用的配置文件。
有两种方法来配置你的Python安装,在Python启动时调用这个函数:

  1. 创建或追加到sitecustomize.py以添加以下行:
import coverage
coverage.process_startup()
  1. 在您的Python安装中创建一个.pth文件,其中包含:
import coverage; coverage.process_startup()

返回已启动的覆盖率实例,或者如果它未被此调用启动,则返回None。

CoverageData class

新版本4.0

class coverage.CoverageData(debug=None)

管理收集的覆盖率数据,包括文件存储。
该类是公共支持的API,用于在程序执行期间收集的coverage.py数据。它包含有关执行了哪些代码的信息。它不包括来自分析阶段的信息,以确定哪些行可能已经执行,或者哪些行没有执行。

注意:
文件格式没有文档化或保证。它在未来可能会以复杂的方式改变。不要直接读取coverage.py数据文件。使用此API可避免中断。

可以收集的数据有以下几种:

  • lines:执行的源代码行号。这些总是可以买到的。
  • arcs:用于源线之间转换的源和目标行号对。这些只有在分支覆盖被使用时才可用。
  • file tracer names:处理数据中的每个文件的文件跟踪程序插件的模块名称。
  • run information:关于程序执行的信息。这是在“coverage run”期间编写的,然后在“coverage combine”期间累积的。

为每个源文件存储行、弧和文件跟踪程序名称。这个API中的文件名是大小写敏感的,即使在文件系统不区分大小写的平台上也是如此。

要读取一个coverage.py数据文件,使用read_file(),如果您有一个已经打开的文件,则使用read_fileobj()。然后可以使用lines()、arcs()或file_tracer()访问行、arc或文件跟踪器数据。运行信息可用run_infos()。

has_arcs()方法指示arc数据是否可用。您可以使用measured_files()获得数据中的文件列表。行数据的摘要可以从line_counts()中获得。与大多数Python容器一样,您可以使用该对象作为布尔值来确定是否存在任何数据。

大多数数据文件将由coverage.py本身创建,但是如果愿意,您可以使用这里的方法来创建数据文件。add_lines()、add_arcs()和add_file_tracers()方法以方便coverage.py的方式添加数据。add_run_info()方法向运行信息添加键-值对。

要添加一个没有任何测量数据的文件,使用touch_file()。
使用write_file()写命名文件,或者使用write_fileobj()写已经打开的文件。

您可以使用erase()清除内存中的数据。两个数据集合可以通过在一个CoverageData上使用update()来组合,并将其传递给另一个。

init(debug=None)

创建一个CoverageData。
debug是用于编写调试消息的DebugControl对象。

add_arcs(arc_data)

添加实测电弧数据。
arc_data是一个映射文件名到字典的字典:

{ filename: { (l1,l2): None, ... }, ...}

add_file_tracers(file_tracers)

添加每个文件的插件信息。
file_tracers是{filename: plugin_name,…}

add_lines(line_data)

添加测量线数据。
line_data是一个映射文件名到字典的字典:

{ filename: { lineno: None, ... }, ...}

add_run_info(**kwargs)

添加关于运行的信息。
关键字是任意的,并存储在运行字典中。值必须是JSON可序列化的。您可以多次使用此函数,但是重复的关键字会相互覆盖。

add_to_hash(filename, hasher)

将文件名的数据提供给hasher。
hasher是一种掩护物。Hasher实例将用文件的数据更新。它应该只获得结果数据,而不是运行数据。

arcs(filename)

获取为一个文件执行的arcs列表。
如果该文件未被测量,则返回None。一个文件可能被测量,并且没有执行弧,在这种情况下返回一个空列表。
如果执行了该文件,则返回一个由两元组整数组成的列表。每一对是从一行转换到另一行的起始行号和结束行号。这个列表没有特别的顺序。
负数有特殊的意义。如果起始行号为-N,则表示从第N行开始的代码对象的一个条目。如果结束行号为-N,则表示从第N行开始的代码对象退出。

erase()

擦除此对象中的数据。

file_tracer(filename)

获取一个文件的文件跟踪程序的插件名称。
返回处理此文件的插件的名称。如果测量了文件,但是没有使用插件,那么返回“”。如果没有测量文件,则不返回任何文件。

has_arcs()

这个数据有弧线吗?
Arc数据只有在收集期间使用分支覆盖时才可用。
返回一个布尔值。

line_counts(fullpath=False)

返回汇总行覆盖数据的dict。
键是基于文件名的,值是执行的行数。如果fullpath为真,则键是文件的完整路径名,否则它们是文件的基名。
返回将文件名映射到行数的dict。

lines(filename)

获取一个文件执行的行列表。
如果该文件未被测量,则返回None。一个文件可能被度量,并且没有执行任何行,在这种情况下返回一个空列表。
如果执行该文件,则返回一个整数列表,即文件中执行的行号。这个列表没有特别的顺序。

measured_files()

测量过的所有文件的列表。

read_file(filename)

将覆盖率数据从文件名读入这个对象。

read_fileobj(file_obj)

从给定的文件对象读取覆盖率数据。
只能在空的CoverageData对象上使用。

run_infos()

返回运行信息的dict列表。
对于在单个运行期间收集的数据,这将是一个单元素列表。如果数据已经合并,那么每个原始数据文件将有一个元素。

touch_file(filename, plugin_name=’’)

确保文件名出现在数据中,如果需要,文件名为空。
plugin_name是负责此文件的插件的名称。它用于关联正确的文件备份器,等等。

update(other_data, aliases=None)

使用来自另一个CoverageData的数据更新此数据。
如果提供了别名,则它是一个PathAliases对象,用于重新映射路径以匹配本地机器的路径。

write_file(filename)

将覆盖率数据写入文件名。

write_fileobj(file_obj)

将覆盖率数据写入到file_obj