0

我正在为一些旧的和不受欢迎的代码编写测试。我发现coverage.py 是一个有用的工具,可以帮助我决定接下来要编写哪个测试。当我改进我们的测试时,我想看看我是如何影响我们的覆盖范围的。

目前,我通过在并排的浏览器窗口中两次调出 html 报告并在视觉上寻找差异来做到这一点。这看起来很粗糙。你们有没有更好的解决方案?

我找到了 z3c.coverage,在努力让 zope-testrunner 与我们的测试一起工作后,发现它只报告回归,而不是改进。我可以将输入设置为相反的,这样改进看起来就像回归,但是向其他人展示会很混乱。

4

2 回答 2

2

Coverage.py 没有差异功能。听起来很酷,想提供补丁吗?:)

于 2013-03-05T11:34:56.523 回答
0

我也有类似的情况。我想看看覆盖率是否下降了。没有直接的方法可以得到它。所以,我写了一些python脚本和一个shell脚本。我工作得很好,我现在有詹金斯。

脚步

  1. 存储以前的报告和当前报告(report.prev 和 report.curr)

报告文本格式:(这是默认格式,很容易解析)

Name                                     Stmts   Miss  Cover
------------------------------------------------------------------------------
my/project/example.py                     3      3     0%
  1. 将报告解析为键、值是 { 文件名:coverage_percentage } 的地图

    例子:

previous_run = { 
    '/my/filename.py' : '67', 
    '/one/more/file.py' : '89'
}

current_run = {
    '/my/filename.py' : '67',
    '/one/more/file.py' : '89'
}
  1. 然后我们可以比较这些地图(current_run,previous_run)

  2. 在生成新报告时,滚动文件:意思是,将当前报告文件移动到上一个('mv report.curr report.prev')并将新文件移动到 report.curr

我在这里放了完整的实现: https ://github.com/diganthdr/handytools 见(coverage_compare.py)

于 2019-12-06T11:49:45.527 回答