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 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 8bec0335598f1cc69e3262cc50d7678c1a6010fa44625ce343c4ec1500774412 |
|
MD5 | 606c873acdccc331a6d5acd681e97ef9 |
|
BLAKE2b-256 | 60f0df0b502f5acd0c57d93251ec04c2676d582bbb2f7bb86f5debcdf6ca702a |