<p>正如您在评论中所解释的,您担心的是,覆盖率报告将只显示行号,并且您希望避免反复检查这些行号。在</p>
<p>另一方面,我不太赞成用注释把代码弄得乱七八糟,以使某个或另一个工具满意:对我来说,这一切都是降低可读性的。因此,我想提出另一种方法,既避免了代码的混乱,又减轻了您一直重新检查代码的负担。在</p>
<p>我们的想法是,创建一个覆盖情况的基线,您可以根据它来比较未来的覆盖率分析结果。例如,来自覆盖率.py如下(引自<a href="http://coverage.readthedocs.org/en/coverage-4.0.3/index.html" rel="nofollow">http://coverage.readthedocs.org/en/coverage-4.0.3/index.html</a>):</p>
<pre><code>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%
</code></pre>
<p>此输出可以用作“基线”的基础:粗略的想法(有关改进,请参见下文)是,将此输出存储为“已接受”的覆盖情况,并将其与将来的覆盖率报告进行比较。不幸的是,每当行号发生变化时,您都会在区分报表时看到差异。为了避免这种情况,可以改进以下基本思想:</p>
<p>在简单脚本的帮助下,您可以转换报表,以便显示相应行的内容而不是行号。例如,基于上述代码示例的假设报告可能如下所示:</p>
^{pr2}$
<p>从该报告中,您可以为python versions>;=3.3创建以下“覆盖率基线”,例如在文件<code>coverage-baseline-33andabove.txt</code>中:</p>
<pre><code>my_program.py:
- print('older version of python')
</code></pre>
<p>即使您在文件顶部添加了更多的导入行,这个基线看起来还是一样的。将为确定覆盖率的其他python版本创建进一步的基线文件。在</p>
<p>进一步的改进可能是将线路组分开,例如:</p>
<pre><code>my_program.py:
*
- print('older version of python')
*
- cleanup()
- assert False
my_program2.py:
*
- print('older version of python')
</code></pre>
<p>只有当未覆盖的代码发生更改(添加、删除、修改、移动)以及文件名更改时,才会看到差异。然后,出现差异将要求您存储一个新的“覆盖率基线”,或者添加更多测试,直到再次达到原始基线内容。在</p>