问题标签 [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.

0 投票
1 回答
648 浏览

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?

0 投票
2 回答
5727 浏览

python - Python coverage.py exclude_lines

背景

我有几个使用coverage.py 的Django 项目,并且一直在尝试向我的.coveragerc 配置文件的exclude_lines 部分添加一些额外的表达式。问题是,即使使用适当的正则表达式可以在http://www.pythonregex.comhttp://www.regexr.com等测试器中提取线路,它也不会导致线路被忽略那个报告。

我已经查看了文档并浏览了存储库,但无法找出任何原因来解释为什么我的配置可能无法正常工作。从文档看来,我的配置与他们描述的完全一样。

我还尝试使用django-nose版本 1.2,这是最后一个 PyPI 版本,它允许异常注入但无济于事,它似乎在确定 Django 视图和 Django REST Framework API 端点的覆盖范围方面存在一些问题在 1.7 版中。

我试过的

我的配置如下:

我还在配置的报告部分尝试了以下组合来处理异常:

下面是我希望忽略的代码部分的函数示例:

在上面的示例中,根据文档,我希望except Exception as e:忽略下面的所有内容,或者至少忽略该except Exception as e行本身。然而,情况似乎并非如此。如果有人对我的配置有什么问题或我需要做些什么有所了解,我将不胜感激。

0 投票
3 回答
2667 浏览

python - 带有(子)进程覆盖率报告的python unittest

nose用来运行我的“单元测试”测试并且必须nose-cov包含覆盖率报告。这些都可以正常工作,但我的部分测试需要将一些代码作为multiprocessing.Process. 文档说明nose-cov它可以做到multiprocessing,但我不确定如何让它发挥作用。

我只是通过运行nosetests和使用以下内容来运行测试.coveragerc

编辑:

我在“.coveragerc”文件中修复了parallel开关。我也尝试sitecustomize.py在我的站点包目录中添加一个这样的:

不过,我很确定它仍然无法正常工作,因为“丢失”报告仍然显示我知道正在运行的行(它们输出到控制台)。在运行测试用例之前,我还尝试在我的测试用例文件和 shell 中添加环境变量。我还尝试在被调用的函数中显式调用相同的东西multiprocessing.Process来启动新进程。

0 投票
1 回答
66 浏览

python - 使用 python -bb (bytes_warning=2) 覆盖文件

我使用覆盖率来运行测试,我想发布关于 str(bytes_instance)、str(bytearray_instance) 的错误并将字节/字节数组与 str 进行比较。(即运行python -bb)。有没有办法像这样运行覆盖或以编程方式激活 bytes_warning?

0 投票
2 回答
1909 浏览

python-2.7 - 提供 Coverage 的路径以转储 .coverage

我正在开发一个包含一些测试用例的 module1。我有另一个模块2,它可以运行这些测试用例并生成覆盖范围。目前 .coverage 文件夹是在调用 module2 的当前工作目录中生成的。有没有办法指定覆盖的文件夹路径以将此 .coverage 转储到指定的路径中?

0 投票
2 回答
8682 浏览

python - 如何使用 pytest 为覆盖率报告设置不同的 html 输出目录?

使用 pytests 覆盖是一个非常有用的工具。

Html 报告允许很好的输出,但是通过命令行,找不到修改默认输出目录的选项 (htmlcov)

示例命令行:

0 投票
1 回答
567 浏览

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.

0 投票
2 回答
6247 浏览

python - Python 代码覆盖率和多处理

我将工作服coverage.py结合使用来跟踪我的测试脚本的python 代码覆盖率。我使用以下命令:

除了multiprocessing之外,这非常有效。由工作池或子进程执行的代码不会被跟踪。

是否有可能也跟踪多处理代码?我缺少任何特定的选项吗?也许在每次产生新进程时将包装器添加到多处理库以开始覆盖?

编辑

我(和 jonrsharpe,也 :-) 找到了一个用于 multiprocessing 的猴子补丁

但是,这对我不起作用,我的Tracis-CI构建几乎在开始后就被杀死了。我在本地机器上检查了问题,显然将补丁添加到多处理会破坏我的记忆。使用此修复程序,占用远少于 1GB 内存的测试需要超过 16GB。

编辑2

Monkey-patch 在稍作修改后确实可以工作:删除config_file解析 ( config_file=os.environ['COVERAGE_PROCESS_START']) 就可以了。这解决了内存膨胀的问题。因此,相应的行简单地变为:

0 投票
1 回答
1559 浏览

python - Django 项目的代码覆盖率

我安装了coverage.py 来测量我的Django 项目的代码覆盖率。(如此处所述:https ://docs.djangoproject.com/en/1.6/topics/testing/advanced/#integration-with-coverage-py )

但是我目前的项目中没有测试用例。所以,当我运行覆盖它说:

它清楚地说它运行了 0 个测试,但是当我说

它给了我一份代码覆盖率为 91% 的报告。它也只查看我拥有的模型包。它不会查看作为我的应用程序的一部分存在的其他包。

所以当我给

它再次仅报告模型包的覆盖率。

如何测量应用程序所有包的代码覆盖率?请帮忙。提前致谢。

报告:

0 投票
2 回答
2088 浏览

python - 如何找到哪些分支没有被测试覆盖?

我正在测量一个小型 Python 应用程序的代码覆盖率。

虽然线路覆盖率是 100%,但分支覆盖率不是。问题是这coverage不会给我任何关于没有被覆盖的分支位置的迹象。

返回:

我希望Missing列包含与七个错过的分支相对应的行,但那里什么都没有。

我应该如何找到它们?