Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >PyDevD正在阻止pytest正确生成覆盖率

PyDevD正在阻止pytest正确生成覆盖率
EN

Stack Overflow用户
提问于 2021-02-26 08:08:55
回答 1查看 52关注 0票数 1

我正在处理一个生成覆盖率的问题,它不能像预期的那样工作。最后我发现它与pydevd(PyDev调试器)包。

要重现我的问题,您可以使用以下repo:cov-project

只有两个文件。1英寸my_package使用

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import pydevd  # Just for the purpose to show the problem

def sum(num1, num2):
    return num1 + num2

def mult(num1, num2):
    return num1 * num2

和测试文件test_math.py在测试中:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from my_package.math import sum, mult

def test_sum():
    assert sum(1, 2) == 3

def test_mult():
    assert mult(2, 3) == 6

当我删除import pydevd从第一个文件开始运行python -m pytest --cov=my_package tests我得到以下输出:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Name                     Stmts   Miss  Cover
--------------------------------------------
my_package/__init__.py       0      0   100%
my_package/math.py           4      0   100%
--------------------------------------------
TOTAL                        4      0   100%

是的,100%的覆盖率与预期不谋而合。但是当我运行相同的程序并继续导入时pydevd我得到了:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Name                     Stmts   Miss  Cover
--------------------------------------------
my_package/__init__.py       0      0   100%
my_package/math.py           5      4    20%
--------------------------------------------
TOTAL                        5      4    20%

测试是完全相同的,唯一的变化是这个额外的导入。当然,在这个设置中pydevd是未使用的,我可以简单地删除它。但是我在我的专有代码中使用了它,所以我想展示如何以最简单的方式重现我的错误,因为在使用pydevd..。我可以将它更改为本地导入,因为我在测试中不使用它,然后它就可以工作了,但我正在尝试理解这里发生了什么以及为什么要这样做pydevd阻止覆盖范围成功生成报告。

已测试

  • 使用python 3.8和3.9
  • 使用pydevd 2.2.0和2.3.0
  • pytest 6.2.2
  • pytest-cov 2.11.1
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-27 12:09:15

这真的是一个bugpydevd..。

我已经把它修好了

https://github.com/fabioz/PyDev.Debugger/commit/be32cd821f2574566385deeec23081365bf16722

同时,您可以将相同的修复程序应用于您的本地版本。

要查找用于修复的文件,您可以执行以下操作:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import pydevd
from _pydevd_bundle import pydevd_constants
print(pydevd_constants.__file__)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66382210

复制
相关文章
event事件对象
event: 事件对象,当一个事件发生的时候,和当前这个对象发生的这个事件有关的一些详细信息都会被临时保存到一个指定的地方-event对象,供我们在需要的时候调用。
河湾欢儿
2018/09/06
1.1K0
面向对象(十八)-事件 event
类或对象可以通过事件向其他类或对象通知发生的相关事情。 发送事件的类称为“发行者”,接收事件的类称为“订阅者”。 事件基于委托。
孙寅
2020/06/02
1.2K0
js中的事件(event)
我们可以简单的把事件理解为浏览器的感知系统。比如说:他可以感觉到用户是否点击(click)了页面、鼠标是否进入了页面的某个元素上面(mouseover或mouseenter)、鼠标是否离开了网页(mouseout或mouseleave)、浏览器是都加载完了页面上的资源(window.onload)、文档树是否生成(DOMContentLoaded)、键盘上的某个键是否按下(keydown)、鼠标的滚轮是否滚动了等等。
山河木马
2019/03/05
6.9K0
第53天:鼠标事件、event事件对象
-->鼠标事件 -->event事件对象 -->默认事件 -->键盘事件(keyCode) -->拖拽效果
半指温柔乐
2018/09/11
1K0
第43天:事件对象event
一、事件对象 事件:onmouseover、 onmouseout、 onclick event //事件的对象
半指温柔乐
2018/09/11
5600
JavaScript中的Event(事件)详解
Event 对象 Event 对象代表事件的状态,比如事件在其中发生的元素、键盘按键的状态、鼠标的位置、鼠标按钮的状态。 事件通常与函数结合使用,函数不会在事件发生前被执行! 事件句柄 (Ev
时间静止不是简史
2020/07/25
9520
C#中事件(event)
事件基于委托,为委托提供了一种发布/订阅机制。在Windows应用程序中Button类提供了Click事件。触发Click事件时调用的处理程序方法需要定义,其参数由委托类型定义。
卡尔曼和玻尔兹曼谁曼
2019/01/25
2.2K0
C#中事件(event)
JavaScrit中的Event Loop(事件循环)
举一个例子,如果js同时有两个线程,同时对同一个dom进行操作,这时浏览器应该听哪个线程的,如何判断优先级?
刘亦枫
2020/03/19
7850
Event事件
线程间状态同步:即将一个任务丢到子进程中,这个任务将异步执行,如何获取到这个任务的执行状态
小小咸鱼YwY
2019/07/24
9820
python中event事件应用举例
import threading import time def producer(): print(u"chef:等人买包子") event.wait() event.clear() print("开始做包子") time.sleep(3) print("包子好了") event.set() def consumer(): print("zs:我去买包子") event.set() time.sleep(2) pr
py3study
2020/01/03
5330
VueJS获取dom Event对象阻止事件冒泡的方法
方法中传入$event即可,如: <button @click="submit('hello!', $event)">Submit</button> /* ... */ { methods: { submit: function (msg, e) { e.stopPropagation() } } } /* ... */
飞奔去旅行
2019/06/13
1.1K0
事件(Event)
事件是对象发送的消息,以发信号通知操作的发生。操作可能是由用户交互(例如鼠标单击)引起的,也可能是由某些其他的程序逻辑触发的。引发事件的对象称为事件发送方。捕获事件并对其作出响应的对象叫做事件接收方。
跟着阿笨一起玩NET
2018/09/18
1K0
REST API返回结果对象设计
基于REST API的项目返回的数据结构题都是统一的,这样方便接口对接和使用。因此,对结果对象的设计会有一定的要求:
程序新视界
2021/12/07
1K0
Event对象
Event对象表示在DOM中出现的事件,在DOM中有许多不同类型的事件,其主要使用基于Event对象作为主接口的二次接口,Event对象本身包含适用于所有事件的属性和方法。
WindRunnerMax
2021/02/25
6710
event事件句柄的封装
版权声明:本文为吴孔云博客原创文章,转载请注明出处并带上链接,谢谢。 https://blog.csdn.net/wkyseo/article/details/51062712
空空云
2018/09/27
6650
也谈事件(Event)
最近园子里发表了一些讨论“事件(Event)”的文章,我也来凑个热闹,谈谈我对事件的一些粗浅的认识。本文不谈设计模式(观察者模式),只从运行时的角度来分析事件这个对象到底是个什么东西,它有那么神秘吗?为了更好的分析事件,本文将会编写一些例子来模拟事件的订阅机制。本文对事件的分析可以概括为下面三句话: 事件本质上是一个MulticastDelegate对象; MulticastDelegate对象是多个Delegate对象的链表; Delegate = Object + MethodInfo,委托的执行最
蒋金楠
2018/02/08
5770
qt event事件处理
qt事件处理比较恶心,各个事件都是独立的。如果同一时间出现多个事件,某些事件在qt中接收不到。 可以参考qtbase源码事件处理部分,所有的事件都在switch…case中处理,所以一次循环只会处理一个事件。
sofu456
2023/07/10
1580
qt event事件处理
[学习笔记]UGUI-Event事件
在可触发事件的UI(例如Button)的组件面板中添加事件 ![编辑器添加事件.png][1]
六月丶
2022/12/26
5260
Redis中事件循环(Event loop)的原理,实现事件的调度和分发
它是由事件处理器(Event Handler)、文件事件(File Event)、时间事件(Time Event)以及事件管理器(Event Manager)四个主要组件构成。
一凡sir
2023/09/23
9060
Redis中事件循环(Event loop)的原理,实现事件的调度和分发
python 线程事件Event
在python项目开发中,线程thread使用是比较常见的,在前面的文章中我们介绍了 python线程的创建  以及 线程互斥锁 ,今天还要额外介绍一个与线程相关的内容 – 事件Event。
猿说编程[Python和C]
2020/03/05
1.9K0
python 线程事件Event

相似问题

Google Calendar API事件位置

14

Google Calendar API清除事件位置

20

事件参数类别= "calendar#event“的目的是什么。在google日历API中

23

在NC的FL返回位置中的Google API地址?

10

Office 365 API -获取会议室位置和容量

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文