问题标签 [pytest-cov]
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 - 使用外部测试客户端时服务器代码的 Python 代码覆盖率
我有一个调用我的 python 库(api/feature1.py、api/feature2.py 等)的 python API 服务器(server.py)。我有一个在另一台机器上运行的外部客户端,它将调用一堆请求来测试响应。
我想获得 api/ 目录中所有代码的覆盖率。pytest-cov 在这里有帮助吗?如果有,我该如何使用它?我已经使用它对模拟对象等进行单元测试,我的要求似乎不同。
python - PyDevD 阻止 pytest 正确生成覆盖率
我正在处理一个不能按预期工作的代覆盖问题。最后我发现它以某种方式连接到pydevd(PyDev 调试器)包。
要重现我的问题,您可以使用以下 repo:cov-project
只有两个文件。一my_package
进
以及测试中的测试文件test_math.py
:
当我import pydevd
从第一个文件中删除并运行时,python -m pytest --cov=my_package tests
我得到以下输出:
是的,100% 的覆盖率符合预期。但是当我运行相同并继续导入时,pydevd
我得到:
测试完全一样,唯一的变化是这个额外的导入。当然,在这个设置pydevd
中是未使用的,我可以简单地删除它。但我在我的专有代码中使用它,所以我想展示如何重现我的错误的最简单方法,因为在使用pydevd
. 我可以将其更改为本地导入,因为我不在我的测试中使用它,然后它会起作用,但我试图了解这里发生了什么以及为什么会pydevd
阻止成功生成报告的覆盖率。
测试:
- 使用 python 3.8 和 3.9
- 使用 pydevd 2.2.0 和 2.3.0
- pytest 6.2.2
- pytest-cov 2.11.1
python - 如何获取 Pytest 的代码覆盖率百分比值?
我想将我的 pytest 测试的代码覆盖率百分比值发送到外部系统。Xml 或 Html 报告对我来说不兼容,因为它们包含大量冗余信息。是否可以在某些 pytest 夹具中获取此值以在测试执行后将其发送到外部系统?
python - pytest-cov:检测何时覆盖了不应该覆盖的线
pragma: no cover
如果标有 的线实际上被覆盖,有没有办法使覆盖失败?因为有时我将一条线标记为未覆盖,然后我添加了一个使其覆盖但我忘记删除 pragma 的功能,所以这个 pragma 变得混乱。
python-3.x - Pytest Cov 报告缺少模拟异常返回
我是一名网络工程师,正在尝试编写一些 Python,所以每天都在学习。我对单元测试和 Pytest 覆盖率报告有疑问。我想我理解单元测试和pytest的概念。
我有一个使用套接字进行 DNS 查找的函数
我写了一个通过良好的单元测试。我正在使用 pytest-mock 来处理用于 DNS 查找的套接字模拟。Side Effect 似乎在嘲笑 Exception 并且我将 return_value 设置为 False 并且我假设我已经断言返回 False ,测试通过了 ok 这就是为什么我假设我的测试是好的。
pytest-cov 报告显示 return False 行未被覆盖。
第 69 行是函数中的以下代码行
任何指针都将不胜感激,为什么 False 的返回没有被声明为已覆盖。就像我上面说的,我对 Python 和编码很陌生,这是我在 Stackoverflow 上的第一个问题。希望我已经解释了我的问题并提供了足够的信息以获得一些指导。
python-3.x - 有没有办法使用coveragerc从代码覆盖率测量中排除代码行?
我正在使用 pytest,使用coveragerc 来测量我的源文件的代码覆盖率,如下所示
我的coveragerc配置如下
pytest 配置
存在验证功能的测试my_func
,但不适用于 main 函数下的代码行。我希望能够从代码覆盖范围中排除主函数中的所有行,因为它的功能只是初始化解析器并调用另一个函数。
python - pytest-cov 用于外部库代码覆盖的选项
目前我正在尝试为python项目实现自动化测试工具。是否可以使用 pytest-cov 模块从外部库中收集代码覆盖率?据我所知,只有coverage
模块会报告外部库的代码覆盖率!
例子:
使用该命令coverage run -m --pylib pytest file.py::test_rand
,我们可以从外部库(例如我们的例子中的随机模块)获取代码覆盖率。
是否可以使用 pytest-cov 来做同样的事情?
pytest - 我想知道代码本身中每个测试用例的运行时间,在数据砖中使用 pytest
我正在使用数据砖笔记本。我创建了一个包含测试用例的 test_notebook.py。我开始使用下面的代码在另一个笔记本中执行
我得到了所有测试用例的运行时间。如何在数据块笔记本本身中查看每个测试用例的运行时间?
gitlab - 将 pytest 覆盖率附加到 Gitlab CI 工件中的文件
我试图在 gitlab 阶段拆分我的 pytest,以减少运行它们所需的时间。但是,我很难获得完整的报道报告。由于我们的数据库设置方式,我无法使用 pytest-xdist 或 pytest-parallel。
在这两个阶段运行(构建 - 1 个作业,测试 - 2 个作业)之后,我去从 Gitlab 下载香蕉.xml 文件,但其中没有任何内容,即使作业说Coverage XML written to file banana.xml
在 gitlab 管道阶段拆分标记测试时,我是否遗漏了如何将总覆盖率写入工件文件?
python - 使用 pytest 对 Flask-wtfoms 进行单元测试
这是对我之前的问题的跟进。我已经构建了表单和页面,并开始使用单元测试对其进行测试。但是,当我尝试使用新的 SQLite 数据库 test.db 运行单元测试时,它无法找到其中的表,如果我使用我的主 data.db,则无法读取主页表的内容
在我的 unit_test.py 中,我有以下测试基地
在基础之后,我还有 3 个测试类:
- 试读
- 测试更新
- 测试删除
它们看起来像这样:
类TestRead(TestBase):
类测试更新(TestBase):
类TestDelete(TestBase):
每次我尝试运行 pytest --cov=app 来查看覆盖率时,我都会收到以下错误:
总的来说,我非常难过,非常欢迎任何建议!