用于覆盖率报告的nose插件,包括子进程和多进程

nose-cov的Python项目详细描述


此插件生成覆盖率报告。它还支持子流程的覆盖

应提供覆盖包提供的所有功能,通过鼻罩或 通过覆盖的配置文件。

安装

使用pip安装:

pip install nose-cov

注意

确保使用pip而不是easy_install,因为后者不能正确安装 子流程测量所需的init_cov_core.pth文件。

卸载

使用pip进行卸载:

pip uninstall nose-cov
pip uninstall cov-core

注意

确保手动删除站点包目录中的init_cov_core.pth文件。

此文件在站点初始化期间启动子进程的覆盖范围集合(如果适用) 在python启动时

用法

以下将报告主流程及其所有子流程的组合覆盖范围:

nosetests --with-cov --cov myproj tests/

显示终端报告:

---------- coverage: platform linux2, python 2.6.5-final-0 -----------
Name                 Stmts   Miss  Cover
----------------------------------------
myproj/__init__          2      0   100%
myproj/myproj          257     13    95%
myproj/feature4286      94      9    90%
----------------------------------------
TOTAL                  353     22    94%
----------------------------------------------------------------------

报告

可以为单个测试运行生成报告的任意组合。

可用的报告包括终端(显示或不显示缺少行号)、HTML、XML和 带注释的源代码。

不带行号的终端报告(默认值):

nosetests --with-cov --cov-report term --cov myproj tests/

---------- coverage: platform linux2, python 2.6.5-final-0 -----------
Name                 Stmts   Miss  Cover
----------------------------------------
myproj/__init__          2      0   100%
myproj/myproj          257     13    95%
myproj/feature4286      94      9    90%
----------------------------------------
TOTAL                  353     22    94%
----------------------------------------------------------------------

带有行号的终端报告:

nosetests --with-cov --cov-report term-missing --cov myproj tests/

---------- coverage: platform linux2, python 2.6.5-final-0 -----------
Name                 Stmts   Miss  Cover   Missing
--------------------------------------------------
myproj/__init__          2      0   100%
myproj/myproj          257     13    95%   24-26, 99, 149, 233-236, 297-298, 369-370
myproj/feature4286      94      9    90%   37, 40, 183-188, 197
--------------------------------------------------
TOTAL                  353     22    94%
----------------------------------------------------------------------

其余三个报告输出到文件,而不在终端上显示任何内容(对于 当输出到持续集成服务器时:

nosetests --with-cov
          --cov-report html
          --cov-report xml
          --cov-report annotate
          --cov myproj tests/

覆盖率数据文件

数据文件在测试开始时被删除,以确保每次测试运行都有干净的数据。

数据文件留在测试结束时,这样就可以使用普通的覆盖工具 检查一下

覆盖率配置文件

这个插件提供了一个干净的最小的命令行选项集,添加到notests中。为了 进一步控制覆盖使用覆盖配置文件。

例如,如果测试包含在正在测量的目录树中,则测试可以是 如果需要,可通过使用.coveragerc文件并设置“忽略”选项来排除:

nosetests --cov-config .coveragerc
          --cov myproj
          myproj/tests/

.coveragerc文件包含文件globs:

[run]
omit = tests/*

有关详细信息,请参阅coverage config file文档

注意,这个插件控制一些选项,并且在配置文件中设置选项将没有 效果。其中包括指定要测量的源(源选项)和所有数据文件处理 (数据文件和并行选项)。

限制

对于子流程度量,环境变量必须使其从主流程到 子流程。子进程使用的python必须安装nose cov。子进程必须 进行正常的站点初始化,以便能够检测到环境变量并覆盖 起动。

nose多进程插件

nose cov插件部分地与nose多进程插件一起工作。

nose多进程插件没有与其子进程连接,因此nose cov插件具有覆盖率 已测量但无法合并覆盖率结果并报告它们。

使用cov插件和多进程插件一起运行测试,注意覆盖率报告 此命令将不正确:

nosetests --with-cov --processes=4 tests/

之后将有主nose进程和每个子进程的覆盖率数据文件:

.coverage
.coverage.hostname.7323.198266
.coverage.hostname.7339.177156
.coverage.hostname.7358.543616
.coverage.hostname.7393.997428

告诉Coverage将覆盖率结果合并到一个覆盖率数据文件中:

coverage combine

告诉覆盖范围报告:

coverage report

致谢

虽然这个插件是从头开始构建的,但它受到所做工作的影响 Pytest Coverage(Ross Lawley,James Mills,Holger Krekel)和Nose Coverage(Jason Pellerin)上 其他覆盖插件。

Ned Batchelder的覆盖率及其将覆盖率并行运行的结果。

Holger Krekel for Pytest及其分布式测试支持。

杰森·佩林的鼻子。

unittest2的MichaelFoord

毫无疑问,其他人也为这些工具做出了贡献。

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

推荐PyPI第三方库


热门话题
io如何从java中的远程FileInputStream中知道扩展名为的文件名   java spring引导不会为JSP返回404,除非编译tomcat maven依赖范围?   ArchUnit:如何避免对java类的依赖冲突   java Hibernate很多都不工作   java tomcat基于表单的身份验证数据源配置错误   java将随机对象声明为私有静态最终属性可以吗?   java Sobel筛选器无法正常工作   我想用java为hangman乘以一个字符串   当我试图运行部署在Tomcat中的任何项目时,ubuntu上的java Tomcat服务器将自动关闭   java更高效地读取按字母顺序排序的文本文件   java Android Studio“尚未附加片段”   在JavaServlet中使用从一种形式到另一种形式的数据的html   检测Java中打开的文件夹(JNativeHook)   jakarta ee Hibernate映射异常:实体映射中的重复列   httpSession在Java中使用什么方法进行会话管理   java如何将两个类的代码外包到一个新的类中,以便两个类都可以调用该方法