测试覆盖范围的命令(终端)视图。

cuvner的Python项目详细描述


“您的测试覆盖率的命令视图”

ReadTheDocs

这个包提供的命令行工具cuv提供了一些 可视化项目覆盖率数据的有用工具。这意味着你 必须首先对项目的测试套件运行coverage

一旦有了.coverage文件,就可以使用以下命令 文档如下(或者只需键入cuv来浏览帮助)。

我们利用几个高质量的开源软件包来实现这一目标:

代码:https://github.com/meejah/cuvner 文件:https://cuvner.readthedocs.org

背景+术语

这开始是在“整个项目覆盖范围”中的一些实验 “可视化”,然后还开发了一些我发现的控制台工具 在使用python代码时非常有用。

我放弃了像素/图形可视化的想法 把概念证明成一个分支,现在这个工具就是 控制台可视化-在使用python时非常有用 代码。

就我的设置而言,我使用的是带有256色和Unicode的Debian 有能力的外壳使用日光深色方案。可能有 其他设置的错误,在一定程度上我很乐意接受 拉维修人员修理这些。也就是说,支持unicode的shell是 必须。

其他整洁的视觉效果

我遇到的其他不错的“覆盖可视化”工具:

关于毒性的说明

如果您使用tox来运行测试(而且您应该这样做,这很好!)你的 根据设置,覆盖率文件最终将 .tox/envname/.coverage或类似。所以,你要么用 --coverage将cuv'ner指向正确的文件,或者将其移动到 项目的顶层,以便于使用。

专业提示(TM)

“uncovered”行以稍微不同的unicode开头 字符多于“覆盖”行,所以如果您试图编写测试 对于未覆盖的内容,可以在“下一个 未覆盖的内容“:

cuv src/file.py | less -p-j 4

也就是说(因为cuv lessopen是“默认”命令)要运行 cuv lessopensrc/file.py上,然后在较少的时间内跳到 第一条未覆盖的线,并将其放置在 屏幕然后,您可以点击n进入下一个。

这正是cuv next命令所做的。

控制台可视化

在控制台中可以直接使用的两个主要工具是cuv graphcuv lessopen(可以通过 LESSOPEN环境变量)。用于确定 分支或单个提交,使用cuv diffcuv spark罐 提供项目覆盖范围的快速概述。

cuv graph

console graph, showing txtorcon code

这将显示项目中的所有文件和直方图 他们的报道。每个字符代表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

pygments + coverage coloring in console

此命令旨在通过LESSOPEN环境使用 变量,它允许您预处理用 less。因此,一旦设置好(请通过cuv lessopen --help查看帮助) 您只需对项目中的任何文件运行less,它就会 突出显示语法,并用 领先的绿色或红色迷你垂直条和红色背景(用于 未覆盖的线条)。

顶部出现一个标题,显示总一氧化碳这个的平均值 特殊文件。

待办事项:

  • probably the “proper” way to do this is via a Pygments plugin or extension of some sort
  • option to change which Pygments style is used
  • dark/light background option?

cuv diff

showing "cuv diff" colouring

您可以通过管道将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

spark-line coverage of txtorcon

这在控制台中显示了一种“火花线”类型的东西。不是很好 对于大型项目(如twisted)很有用,但它提供了一个非常快速的 在少量空间中覆盖的概述。使用相同的 Unicode字符为^{TT12}$,它将每个文件表示为 单个字符,其百分比覆盖率用图形表示(因此 粒度降低到12.5%左右。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Hibernate:jpamodelgen生成java而不是类   java如何在第二次活动结束后显示广告?   javascript如何在linux或windows上将java导出到jar   java One ArrayList添加了2个不同的选项   AmazonWeb服务如何在java中使用AWS Textract检索pdf中存在的表   java为什么RecycleView中的水平项在单击时不起作用?   java计算如果存在映射   java在捕获的组上应用正则表达式   如何使用Java在MySQL的同一个表中插入来自不同类的值   java字符串中最常见的字母(大写和小写)   Spring SessionBean实例正在由java中的多个用户共享   使用Spring Boot将@WebInitParam中的值外部化   java一创建线程就开始执行(多线程)   java是安卓所需的系统权限。意图行动给你打电话?