跳转到主要内容

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

项目描述

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

覆盖率包提供的所有功能都应通过nose-cov或通过coverage的配置文件可用。

安装

使用pip安装

pip install nose-cov

卸载

使用pip卸载

pip uninstall nose-cov
pip uninstall cov-core

使用方法

以下将报告主进程及其所有子进程的组合覆盖率

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/

覆盖率数据文件

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

数据文件被保留在测试的末尾,以便可以使用常规覆盖率工具来检查它。

覆盖率配置文件

此插件为nosetests提供了一组干净的、最小的命令行选项,这些选项被添加到nosetests中。要进一步控制覆盖率,请使用覆盖率配置文件。

例如,如果测试包含在要测量的目录树中,可以通过使用设置 omit 选项的 .coveragerc 文件来排除测试

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

其中 .coveragerc 文件包含文件通配符

[run]
omit = tests/*

有关详细信息,请参阅覆盖率配置文件文档。

请注意,此插件控制一些选项,并在配置文件中设置选项将不会有任何效果。这包括指定要测量的源(source 选项)以及所有数据文件处理(data_file 和 parallel 选项)。

限制

对于子进程测量,环境变量必须从主进程传递到子进程。子进程使用的 python 必须安装了 nose-cov。子进程必须执行正常的 site 初始化,以便可以检测环境变量并开始覆盖率。

Nose 多进程插件

nose cov 插件部分与 nose multiprocess 插件兼容。

nose multiprocess 插件不会与其子进程连接,因此 nose cov 插件进行了覆盖率测量,但不能合并覆盖率结果并报告。

可以通过将 cov 插件和 multiprocess 插件一起使用来运行测试,注意此命令的覆盖率报告将是不正确的

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 报告

coverage report

致谢

虽然此插件是从头开始构建的,但它受到了 pytest-coverage(Ross Lawley、James Mills、Holger Krekel)和 nose-cover(Jason Pellerin)等其他覆盖率插件工作的影响。

Ned Batchelder 对覆盖率及其合并并行运行覆盖率结果的能力。

Holger Krekel 对 pytest 的分布式测试支持。

Jason Pellerin 对 nose。

Michael Foord 对 unittest2。

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

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装软件包的信息。

源分发

nose-cov-1.6.tar.gz (5.4 kB 查看哈希值

上传时间

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面