问题标签 [coverage.py]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - nosetests - excluding a dir from the coverage report
I have my python app structured as follows:
I am running nosetests as following:
However, in the coverage report that nosetests prints at the end I still entries from 'other'. How do I exclude 'other' from the coverage report?
python - Python coverage.py exclude_lines
背景
我有几个使用coverage.py 的Django 项目,并且一直在尝试向我的.coveragerc 配置文件的exclude_lines 部分添加一些额外的表达式。问题是,即使使用适当的正则表达式可以在http://www.pythonregex.com或http://www.regexr.com等测试器中提取线路,它也不会导致线路被忽略那个报告。
我已经查看了文档并浏览了存储库,但无法找出任何原因来解释为什么我的配置可能无法正常工作。从文档看来,我的配置与他们描述的完全一样。
我还尝试使用django-nose版本 1.2,这是最后一个 PyPI 版本,它允许异常注入但无济于事,它似乎在确定 Django 视图和 Django REST Framework API 端点的覆盖范围方面存在一些问题在 1.7 版中。
我试过的
我的配置如下:
我还在配置的报告部分尝试了以下组合来处理异常:
下面是我希望忽略的代码部分的函数示例:
在上面的示例中,根据文档,我希望except Exception as e:
忽略下面的所有内容,或者至少忽略该except Exception as e
行本身。然而,情况似乎并非如此。如果有人对我的配置有什么问题或我需要做些什么有所了解,我将不胜感激。
python - 带有(子)进程覆盖率报告的python unittest
我nose
用来运行我的“单元测试”测试并且必须nose-cov
包含覆盖率报告。这些都可以正常工作,但我的部分测试需要将一些代码作为multiprocessing.Process
. 文档说明nose-cov
它可以做到multiprocessing
,但我不确定如何让它发挥作用。
我只是通过运行nosetests
和使用以下内容来运行测试.coveragerc
:
编辑:
我在“.coveragerc”文件中修复了parallel
开关。我也尝试sitecustomize.py
在我的站点包目录中添加一个这样的:
不过,我很确定它仍然无法正常工作,因为“丢失”报告仍然显示我知道正在运行的行(它们输出到控制台)。在运行测试用例之前,我还尝试在我的测试用例文件和 shell 中添加环境变量。我还尝试在被调用的函数中显式调用相同的东西multiprocessing.Process
来启动新进程。
python - 使用 python -bb (bytes_warning=2) 覆盖文件
我使用覆盖率来运行测试,我想发布关于 str(bytes_instance)、str(bytearray_instance) 的错误并将字节/字节数组与 str 进行比较。(即运行python -bb
)。有没有办法像这样运行覆盖或以编程方式激活 bytes_warning?
python-2.7 - 提供 Coverage 的路径以转储 .coverage
我正在开发一个包含一些测试用例的 module1。我有另一个模块2,它可以运行这些测试用例并生成覆盖范围。目前 .coverage 文件夹是在调用 module2 的当前工作目录中生成的。有没有办法指定覆盖的文件夹路径以将此 .coverage 转储到指定的路径中?
python - 如何使用 pytest 为覆盖率报告设置不同的 html 输出目录?
使用 pytests 覆盖是一个非常有用的工具。
Html 报告允许很好的输出,但是通过命令行,找不到修改默认输出目录的选项 (htmlcov)
示例命令行:
python - Django 中 jinja2 模板的代码覆盖率
遵循 Ned Batchelder 的Coverage.py for Django 模板博客文章和django_coverage_plugin插件,用于测量 Django 模板的代码覆盖率。
我真的很想看看模板覆盖率报告,但问题是 - 我们已经用jinja2
通过coffin
适配器替换了 Django 的模板引擎。我知道不建议这样做,但我们有理由。render_to_response()
基本上,我们使用的不是 Django 的:
目前,我们正在使用django-coverage
'test_coverage
命令运行覆盖率测试:
我知道设置并不常见。但是,是否可以使用coverage.py 收集jinja2
模板的代码覆盖率指标?如果没有,我将不胜感激有关制作类似于 的插件的任何想法django_coverage_plugin
,但对于jinja2
.
python - Python 代码覆盖率和多处理
我将工作服与coverage.py结合使用来跟踪我的测试脚本的python 代码覆盖率。我使用以下命令:
除了multiprocessing之外,这非常有效。由工作池或子进程执行的代码不会被跟踪。
是否有可能也跟踪多处理代码?我缺少任何特定的选项吗?也许在每次产生新进程时将包装器添加到多处理库以开始覆盖?
编辑:
我(和 jonrsharpe,也 :-) 找到了一个用于 multiprocessing 的猴子补丁。
但是,这对我不起作用,我的Tracis-CI构建几乎在开始后就被杀死了。我在本地机器上检查了问题,显然将补丁添加到多处理会破坏我的记忆。使用此修复程序,占用远少于 1GB 内存的测试需要超过 16GB。
编辑2:
Monkey-patch 在稍作修改后确实可以工作:删除config_file
解析 ( config_file=os.environ['COVERAGE_PROCESS_START']
) 就可以了。这解决了内存膨胀的问题。因此,相应的行简单地变为:
python - Django 项目的代码覆盖率
我安装了coverage.py 来测量我的Django 项目的代码覆盖率。(如此处所述:https ://docs.djangoproject.com/en/1.6/topics/testing/advanced/#integration-with-coverage-py )
但是我目前的项目中没有测试用例。所以,当我运行覆盖它说:
它清楚地说它运行了 0 个测试,但是当我说
它给了我一份代码覆盖率为 91% 的报告。它也只查看我拥有的模型包。它不会查看作为我的应用程序的一部分存在的其他包。
所以当我给
它再次仅报告模型包的覆盖率。
如何测量应用程序所有包的代码覆盖率?请帮忙。提前致谢。
报告:
python - 如何找到哪些分支没有被测试覆盖?
我正在测量一个小型 Python 应用程序的代码覆盖率。
虽然线路覆盖率是 100%,但分支覆盖率不是。问题是这coverage
不会给我任何关于没有被覆盖的分支位置的迹象。
返回:
我希望Missing
列包含与七个错过的分支相对应的行,但那里什么都没有。
我应该如何找到它们?