报告提交的(以前运行的)覆盖率结果。
commit-coverage的Python项目详细描述
这允许您评估回购协议中所做更改的覆盖范围。它 准备向上推送代码以供上游审阅时使用。
用法
作为使用此脚本的先决条件,在repo中运行coverage,以 在 回购树。这个覆盖应该在 向上传输(工作目录中的内容,或 承诺本地回购)。
行为
假设您有一个包含未提交更改的repo,则可以运行以下命令 如下所示:
commit_coverage /opt/stack/networking-cisco
参数必须是在 “cover”子目录。
默认情况下,这将创建工作目录与 最新提交(head),最多有三行上下文。输出将 对照覆盖范围数据和生成的报告进行检查。以下是 输出如下:
devstack/csr1kv/cisco_neutron (No coverage data) networking_cisco/apps/saf/agent/dfa_agent.py (No added/changed lines) networking_cisco/apps/saf/server/dfa_server.py (run=1, mis=1, par=0, ign=0) 47% 32 run import time 33 34 35 run +from networking_cisco._i18n import _LE, _LI, _LW 36 run from oslo_serialization import jsonutils 37 38 382 # it is created by openstack. 383 run part_name = self.cfg.dcnm.default_partition_name 384 par if len(':'.join((proj_name, part_name))) > 32: 385 mis + LOG.error(_LE('Invalid project name length: %s. The length of ' 386 'org:part name is greater than 32'), 387 len(':'.join((proj_name, part_name)))) 388 mis return
将报告来自diff的每个文件。如果文件未被处理 通过覆盖率测试,或者在 对于文件,这将被报告,如前两个文件所示。
对于包含覆盖率数据和添加/更改行的文件,输出将 看起来像第三个文件。显示diff中的每个行号, 覆盖状态,可以是:
- “run”该行作为覆盖运行的一部分被调用
- 'mis'覆盖期间未调用该行
- “par”线路部分覆盖
- “”该行未考虑覆盖范围(例如空白、不可执行)
接下来,如果行是添加/更改的,则显示“+”。如果是上下文行 对于diff区域,将显示一个''。删除的行不显示。之后, 显示源代码。
文件名旁边是摘要信息,仅用于添加的行 或者改变了。在这个例子中,有一条线路在 更改集合(带加号的行)。最后,我们可以看到 文件的覆盖率报告-在本例中为47%。
这个脚本可以使用几个旋钮。首先,你可以改变 使用–context参数显示的上下文行数。违约 是3,可以是0或更多。注意:如果diff区域在开始处或 在文件的末尾,上下文行可能会更少或没有上下文行。
其次,您可以选择哪些提交用于diff计算,方法是 指定–哪个参数。默认值是“working”,它将执行 工作目录和最新提交(head)之间的差异。相反,你可以 提供“committed”,将当前提交与 上一次提交(head^..head)。否则,您可以提供提交版本 要用于diff,只需确保最新的对应于 保险报告。例如,您可以执行以下操作:
cd /opt/stack/neutron commit_coverage --context 5 --which HEAD~5..HEAD~ .
这在中子回购上运行工具,显示更多上下文行,并将 在头~5和头~commits之间进行比较。
可以使用-h选项查看此脚本的参数。