提供创建覆盖率报告的单脚本
项目描述
createzopecoverage
createzopecoverage提供了一个名为bin/createzopecoverage的脚本,用作一行覆盖率报告生成器。它基本上是围绕z3c.coverage的一个包装器。它旨在在构建过程中使用,因此有两个假设
您运行此脚本所在的目录是构建过程的根目录。
存在一个bin/test。
是的,它假设了z3c.coverage,因此是一个Zope测试设置。它不适用于“常规”的coverage.py设置。
安装和使用
要安装,将createzopecoverage添加到zc.recipe.egg部分。您通常已经有一个用于常见脚本的。所以像这样
[buildout] ... parts = ... console_scripts [console_scripts] recipe = zc.recipe.egg eggs = ... createzopecoverage
或者您也可以使用
[buildout] ... parts = ... createzopecoverage [createzopecoverage] recipe = createzopecoverage
(注意:您可以更改部分名称,二进制文件将根据该部分命名)。
这会为您提供名为bin/createzopecoverage的脚本,该脚本执行以下操作
检查是否存在 bin/test。安全特性。
如果存在,删除旧的覆盖率目录。这样您可以始终获得干净的结果。
使用 --coverage=... 选项运行 bin/test。
使用 z3c.coverage 创建实际的报告。默认情况下,在 ./coverage/reports 中。如果您使用命令行参数(bin/createzopecoverage /tmp/output)启动 createzopecoverage,它将报告放入该目录。
如果您没有指定输出目录,请在您的网络浏览器中打开报告。这里的假设是,如果您直接运行脚本,您只想看到覆盖率报告。如果您 确实 指定了一个输出目录,您可能正在服务器内部(如 buildbot)运行它,并且希望输出在某个网络服务器提供的目录中。在服务器上打开浏览器是没有用的。
开发
源代码位于 https://bitbucket.org/reinout/createzopecoverage,您也可以在那里 报告问题。请随意提出改进建议(特别是自己实现它们)。
OSX 备注
z3c.coverage 使用“enscript”命令进行 Python 代码高亮。OSX 10.5.7 之前提供的版本会抱怨 z3c.coverage 传递的未知 --footer 参数。有两种可能的解决方案:
更新到 10.5.7。这个更新在我写下这个原始评论几分钟后就发布了 :-)
从 macports 安装 enscript。
在您的路径上添加一个名为“enscript”的脚本,该脚本调用原始的 enscript 并不带引起问题的参数
#!/bin/sh shift /usr/bin/enscript -q --header -h --language=html --color -o - $9
更多信息
技术细节和完整的 doctest 在 createzopecoverage/USAGE.txt 中。
由 Reinout van Rees 制作。
Buildout 脚本安装选项由 Michael Howitz 制作。
待办事项
等待第一个错误报告 :-)
createzopecoverage 的更改日志
1.5 (2011-04-27)
在网页浏览器无法打开时显示创建的报告路径以便复制粘贴。
1.4 (2010-12-28)
为 Windows 添加了回退:测试二进制文件为 bin\test.exe 而不是 bin/test。修复了错误 #1。
1.3 (2010-09-29)
添加了通过一行 buildout 脚本安装 createzopecoverage 的可能性,而不是通过 zc.recipe.egg 部分。额外优惠:您可以选择您的脚本名称(即您的部分名称)。
1.2 (2010-09-20)
修复了错误:由于缺少 MANIFEST.in,一些文件未包含在内。
1.1 (2010-09-20)
将其重命名为 tha.coverage 为 createzopecoverage(应要求)。
1.0 (2009-12-18)
添加了许可协议,文档更新。[reinout]
0.1.1 (2009-05-13)
文档更新:osx 10.5.7 修复了 enscript 问题。[reinout]
清理了一些 thaskel 添加的、对于通用库不需要的东西。[reinout]
0.1 (2009-05-13)
实现了第一个工作版本。[reinout]
由 thaskel 创建了初始库骨架。[reinout]