我正在为一些旧的和不同的代码编写测试。我发现coverage.py是一个有用的工具,可以帮助我决定下一个要写的测试。随着我改进测试,我想看看我是如何影响我们的测试的。
目前我这样做是通过在并排的浏览器窗口中两次调出html报告,并在视觉上寻找差异。这似乎很粗糙。你们中有人有更好的解决方案吗?
我找到z3c.coverage,在努力让zope-testrunner使用我们的测试后,发现它只报告回归而不是改进。我可以将输入反过来,这样改进看起来就像回归一样,但是向其他人展示会很困惑。
答案 0 :(得分:1)
Coverage.py没有差异功能。听起来很酷,想要提供补丁吗? :)
答案 1 :(得分:0)
我处于类似情况。我想看看覆盖率是否下降。 没有直接的方法来获得它。 因此,我写了一些python脚本和一个shell脚本。我工作正常,现在有了詹金斯。
步骤
报告文本格式:(这是默认格式,很容易解析)
Name Stmts Miss Cover
------------------------------------------------------------------------------
my/project/example.py 3 3 0%
将报告解析为地图 其中键的值为{filename:coverage_percentage}
示例:
previous_run = { '/my/filename.py' : '67', '/one/more/file.py' : '89' } current_run = { '/my/filename.py' : '67', '/one/more/file.py' : '89' }
然后我们可以比较这些地图(current_run,previous_run)
在生成新报告时,滚动文件:含义是,将当前报告文件移至上一个(“ mv report.curr report.prev”),然后将新文件移至report.curr
我已经在此处进行了完整的实现: https://github.com/diganthdr/handytools 参见(coverage_compare.py)