显示两个testcoverage运行中的差异

2024-05-20 19:55:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在为一些旧的和被否认的代码编写测试。我发现了覆盖率.py成为一个有用的工具来帮助我决定下一步要写哪个测试。当我改进我们的测试时,我想看看我是如何影响我们的覆盖率的。在

目前,我通过在并排的浏览器窗口中打开两次html报告来实现这一点,并在视觉上寻找差异。这看起来很粗糙。你们有没有更好的解决办法?在

我发现了z3c.coverage,在努力让zopetestrunner处理我们的测试之后,发现它只报告回归,而不是改进。我可以用相反的方式给出输入,这样改进看起来就像是倒退,但是这会让其他人感到困惑。在


Tags: 工具z3c代码pyhtml报告方式coverage
2条回答

在覆盖率.py没有diff功能。听起来很酷,想提供一个补丁吗?:)

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

步骤

  1. 存储以前的报告和当前的报告报告.prev以及报告.curr)在

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

Name                                     Stmts   Miss  Cover
                                       
my/project/example.py                     3      3     0%
  1. 将报表解析为地图 其中key,value为{filename:coverage\upercentage}

    示例:

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

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

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

我已在这里全面实施: https://github.com/diganthdr/handytools 参见(覆盖范围_比较.py)在

相关问题 更多 >