测试覆盖范围的命令(终端)视图。
cuvner的Python项目详细描述
“您的测试覆盖率的命令视图”
这个包提供的命令行工具cuv提供了一些 可视化项目覆盖率数据的有用工具。这意味着你 必须首先对项目的测试套件运行coverage。
一旦有了.coverage文件,就可以使用以下命令 文档如下(或者只需键入cuv来浏览帮助)。
我们利用几个高质量的开源软件包来实现这一目标:
- coverage by Ned Batchelder
- Click by Armin Ronacher / pocoo
- pygments by Georg Brandl / pocoo
- ansicolors by Giorgos Verigakis
- unidiff by Matias Bordese
- Source Code Pro: the best programming font
代码:https://github.com/meejah/cuvner 文件:https://cuvner.readthedocs.org
背景+术语
这开始是在“整个项目覆盖范围”中的一些实验 “可视化”,然后还开发了一些我发现的控制台工具 在使用python代码时非常有用。
我放弃了像素/图形可视化的想法 把概念证明成一个分支,现在这个工具就是 控制台可视化-在使用python时非常有用 代码。
就我的设置而言,我使用的是带有256色和Unicode的Debian 有能力的外壳使用日光深色方案。可能有 其他设置的错误,在一定程度上我很乐意接受 拉维修人员修理这些。也就是说,支持unicode的shell是 必须。
其他整洁的视觉效果
我遇到的其他不错的“覆盖可视化”工具:
- 当然,Coverage.py本身带有 不错的HTML可视化
- emacs-coverage
- codecov.io browser extension直播报道 浏览github时
关于毒性的说明
如果您使用tox来运行测试(而且您应该这样做,这很好!)你的 根据设置,覆盖率文件最终将 .tox/envname/.coverage或类似。所以,你要么用 --coverage将cuv'ner指向正确的文件,或者将其移动到 项目的顶层,以便于使用。
专业提示(TM)
“uncovered”行以稍微不同的unicode开头 字符多于“覆盖”行,所以如果您试图编写测试 对于未覆盖的内容,可以在“下一个 未覆盖的内容“:
cuv src/file.py | less -p ▌ -j 4
也就是说(因为cuv lessopen是“默认”命令)要运行 cuv lessopen在src/file.py上,然后在较少的时间内跳到 第一条未覆盖的线,并将其放置在 屏幕然后,您可以点击n进入下一个。
这正是cuv next命令所做的。
控制台可视化
在控制台中可以直接使用的两个主要工具是cuv graph 和cuv lessopen(可以通过 LESSOPEN环境变量)。用于确定 分支或单个提交,使用cuv diff。cuv spark罐 提供项目覆盖范围的快速概述。
cuv graph
这将显示项目中的所有文件和直方图 他们的报道。每个字符代表8行代码,并使用 一组Unicode字符(0x2580到0x2587)来绘制一点 图表。所以,如果这8行根本没有被覆盖,那么图表将是 全是红色的;如果都盖上了,就全是绿色的。如果2个 覆盖8条线路,其中约25%为绿色,其余为红色。
因此,可以很容易地看到每个文件的总大小(通过 柱状图部分,如果需要,它将换行到后续行)和 给出了覆盖哪些部分的概念。
待办事项:
- testing on more terminal types
- how does it look when using something besides Solarized Dark?
- useful, beyond eye-candy?
cuv lessopen
此命令旨在通过LESSOPEN环境使用 变量,它允许您预处理用 less。因此,一旦设置好(请通过cuv lessopen --help查看帮助) 您只需对项目中的任何文件运行less,它就会 突出显示语法,并用 领先的绿色或红色迷你垂直条和红色背景(用于 未覆盖的线条)。
顶部出现一个标题,显示总一氧化碳这个的平均值 特殊文件。
待办事项:
cuv diff
您可以通过管道将git diff传递到该文件,并看到 差异在你的控制台。我正在使用名为unidiff的库来读取 实际的diff,到目前为止工作得很好。也就是说,我只 对git的输出进行了尝试,例如:
git diff | cuv diff | less
待办事项:
- colors are unsatisfying, since for added lines they’re pretty much the same as Git’s colored output
- maybe make it look more like the “real” underlying diff? (e.g. re-create the @@ and so forth things)
- does it work with merge commits?
cuv spark
这在控制台中显示了一种“火花线”类型的东西。不是很好 对于大型项目(如twisted)很有用,但它提供了一个非常快速的 在少量空间中覆盖的概述。使用相同的 Unicode字符为^{TT12}$,它将每个文件表示为 单个字符,其百分比覆盖率用图形表示(因此 粒度降低到12.5%左右。