首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

当我运行pytest时,为什么记录器不能传播

当你运行pytest时,记录器不能传播的原因可能是由于以下几个方面:

  1. pytest的默认行为是在每个测试用例中创建一个新的记录器实例,而不是共享同一个记录器实例。这是为了确保每个测试用例的日志输出是独立的,避免不同测试用例之间的日志混淆。因此,如果你在一个测试用例中创建了一个记录器并在另一个测试用例中使用它,你可能会遇到记录器不能传播的问题。
  2. pytest的记录器传播行为可以通过配置文件或命令行选项进行修改。你可以使用pytest的--log-cli-level选项来设置记录器的传播级别,例如--log-cli-level=INFO。这将允许记录器在测试用例之间传播日志消息。但是,请注意,这种设置可能会导致日志输出变得混乱,特别是在多线程或并发测试中。
  3. 另一个可能的原因是你的代码中存在错误或配置问题,导致记录器无法正确传播。你可以检查你的代码中是否正确地配置了记录器,并确保在需要传播日志的地方正确地使用了记录器实例。

总结起来,当你运行pytest时,记录器不能传播的原因可能是pytest的默认行为是在每个测试用例中创建一个新的记录器实例,你可以通过配置文件或命令行选项修改记录器的传播行为,同时也需要确保你的代码中正确地配置和使用记录器实例。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

pytest文档81 - 如何管理Captured logging日志

日志显示 当输入pytest命令,不带任何参数 pytest 如果运行的用例没有报错,那么打印的内容很简洁 以下示例,当用例中有报错的时候 # content of test_sample.py import...,也可以设置任何记录器的日志级别 def test_foo(caplog): caplog.set_level(logging.CRITICAL, logger="root.baz") 测试结束...pass 最后,测试运行期间发送给记录器的所有日志都以两种日志的形式在设备上可用。...true,pytest将在日志记录直接发送到控制台输出日志记录。...此日志文件以写模式打开,这意味着它将在每次运行测试会话被覆盖。请注意,日志文件位置的相对路径(无论是在CLI上传递的还是在配置文件中声明的)始终相对于当前工作目录进行解析。

1.1K20
  • 把病毒写到区块链上可以永远不死? 我们做了一个大胆的实验…… | 技术头条

    不得不说这是一个很有意思的问题,所以我将自己的思考过程凝练成这一篇文章,在文章中你将学到: 为什么恶意软件难以感染区块链? 我们可以使用区块链这种去中心化系统来传播恶意软件么?...为什么恶意软件难以感染区块链? 为了详细地回答这个问题,在这里我们将讨论的范围缩小到比特币和以太坊这两个公链上。...此外,如何确保执行恶意软件各个部分不掉链子呢?在执行之前,我们可以使用有效载荷的哈希值来检验各个部分是否都已加入到网络中。 你可能会问,这么做是为了什么呢?...ipfs get 当我们使用哈希值索引来下载某部分的文件,我们可以完全确定这些文件没有被篡改。 下载完成后,我们再用杀毒软件扫描一下。...上图表明恶意软件的所有部分都是可用的,也就是说我们可以运行键盘记录器来盗取信息了。 注意:这里并没有将文件永久存储在星际文件系统中。

    78230

    为什么日志要private static final

    为什么声明日志记录器是私有的、静态的和final的良好实践呢?日志记录器是一个内部实现细节,因此它应该是私有的。对于类的所有实例,您只需要一个日志记录器,因此是静态的。...并且记录器不能被替换,因此是最终的。所以如果这是好的,有什么不好的(至少在我看来)?Simple——任何不是私有的、静态的、final的记录器,并且不会将Class对象传递给getLog()!...起初,这似乎很有效,因为现在所有子类都自动继承了正确运行时类型的现成的日志。这里出了什么问题?...在这种情况下,如果试图从超类中筛选出日志记录,则不能,因为实际的运行时类用于获取日志记录器。 最后,拥有一个受保护的记录器似乎违反了基本的面向对象原则。...为什么子类应该从横切关注点的超类了解内部实现细节?无论如何,虽然这是一个愚蠢的小咆哮,但是当您扩展一个声明像这样的受保护日志记录器的超类,它确实很烦人。

    2.1K20

    Python的pytest模块

    如何编写pytest测试样例通过上面2个实例,我们发现编写pytest测试样例非常简单,只需要按照下面的规则:测试文件以test_开头(以_test结尾也可以)测试类以Test开头,并且不能带有 init...2.运行指定的case  当我们写了较多的cases,如果每次都要全部运行一遍,无疑是很浪费时间的,通过指定case来运行就很方便了。...::test_one 注意:定义class,需要以T开头,不然pytest是不会去运行该class的。...4.重试运行cases  在做接口测试,有事会遇到503或短时的网络波动,导致case运行失败,而这并非是我们期望的结果,此时可以就可以通过重试运行cases的方式来解决。...5.显示print内容 在运行测试脚本,为了调试或打印一些内容,我们会在代码中加一些print内容,但是在运行pytest,这些内容不会显示出来。如果带上-s,就可以显示了。

    1.1K20

    使用Pytest创建一个Python测试自动化项目

    为什么选择Python? Python是当前最流行的编程语言之一。它为Web后端,数据科学笔记本,sysadmin脚本等提供支持。它的语法简洁,易读且优雅–非常适合初学者和专家。...然后,为项目创建一个新目录: $ mkdir python-webui-testing $ cd python-webui-testing 每当我创建一个新的Python项目,都会为其依赖项创建一个虚拟环境...要全局安装pipenv,请运行: $ pip install pipenv 然后,为新项目安装pytest: $ pipenv install pytest --dev Pipenv将向您的项目添加两个新文件...运行测试 让我们运行我们的新测试。...参数化测试 如果我们要使用多个输入组合来运行相同的测试过程,该怎么办?pytest有一个装饰器!

    1.5K30

    Pytest框架 | 运行参数实战案例剖析

    上期回顾 Pytest的配置:AutoTest-Pytest环境安装配置 Pytest运行参数说明:Pytest常用参数剖析 | 案例演示 本期介绍 今天给大家再进行讲解下Pytest运行时另外几个份量级参数...-n 参数来解决问题 pytest -vs test_one_case.py -n 2 运行方式加-n参数进行运行,n=2意味着代表2个线程,看看效果 发现没有当我们加了-n参数后 n=2 启动2...个线程,耗时减半了,大家还可以试试n=3 n=4的时候效果 -reruns参数 这里我们将第三条测试用例写一个错误的断言,先进行运行看是否报错,再看看我们运用重试参数-reruns的效果 // FileName...() pytest -vs test_one_case.py 运行参数正常运行,未加-reruns重试参数,正常运行到第三条测试用例进行报错了 我们来试试进行加上--reruns的效果,注意哈当我们在实际命令编写...,是使用的--reruns 2 后面接上重新运行的次数,后面接2就代表重新运行2次 pytest -vs test_one_case.py --reruns 2 当我们加了--reruns 2 参数后我们发现第三条错误的用例

    48410

    使用Pytest创建一个Python测试自动化项目

    为什么选择Python? Python是当前最流行的编程语言之一。它为Web后端,数据科学笔记本,sysadmin脚本等提供支持。它的语法简洁,易读且优雅–非常适合初学者和专家。...然后,为项目创建一个新目录: $ mkdir python-webui-testing $ cd python-webui-testing 每当我创建一个新的Python项目,都会为其依赖项创建一个虚拟环境...要全局安装pipenv,请运行: $ pip install pipenv 然后,为新项目安装pytest: $ pipenv install pytest --dev Pipenv将向您的项目添加两个新文件...运行测试 让我们运行我们的新测试。...参数化测试 如果我们要使用多个输入组合来运行相同的测试过程,该怎么办?pytest有一个装饰器!

    2K10

    67. Django日志logging设置

    Naming loggers 调用以logging.getLogger()获取(必要创建)记录器的实例logger。...为什么层次结构很重要?好吧,因为可以将记录器设置为将其日志记录传播给父母。这样,就可以在记录器树的根目录中定义一组处理程序,并在记录器的子树中捕获所有日志记录。...可以在每个记录器的基础上控制此传播日志的行为。如果您不希望特定的记录器logger传播日志给它的父母,则可以关闭此行为。可以通过设置'propagate': False,来实现。...禁用的记录器与已删除的记录器不同;记录器仍将存在,但会静默丢弃记录到它的所有内容,甚至不会将条目传播到父记录器。因此,您应该非常小心地使用;这可能不是您想要的。...配置三个记录器: django,它将所有消息传递给console处理程序。 django.request,它将所有ERROR消息传递给mail_admins处理程序。另外,该记录器被标记为不传播消息。

    2.9K20

    JS执行上下文与调用栈

    每当 JavaScript 代码运行时,它都在执行上下文中运行;调用栈则可以在脚本调用多个函数,跟踪每个函数在完成执行时应该返回的控制点。 什么是执行上下文?...每当 Javascript 代码在运行的时候,它都是在执行上下文中运行。 执行上下文的类型 JavaScript 中有三种执行上下文类型。...调用栈列表: 空 我们从一个空的调用栈开始,当我们调用一个函数,它会自动添加到调用栈中,在执行完所有代码之后,它会自动从调用栈中删除。最后,我们也得到了一个空栈。 怎么创建执行上下文?...这就是为什么你可以在声明之前访问 var 定义的变量(虽然是 undefined),但是在声明之前访问 let 和 const 的变量会得到一个引用错误。 这就是我们说的变量声明提升。...注意 — 在执行阶段,如果 JavaScript 引擎不能在源码中声明的实际位置找到 let 变量的值,它会被赋值为 undefined。

    1.5K10

    pytest环境准备与入门

    启动浏览器 cls.driver = webdriver.Chrome() cls.driver.get(cd.web_login_url) 为什么不能写__init_...为什么出现打多种标签的情况呢? 写测试用例的时候想按各种维度来分类。冒烟的维度是一种,可以按照模块的维度角度来。 测试类和测试用例都可以这样做。为什么都可以这样做?...两个函数前面的标签名要一致,这样才能同时运行。 图1 ? 图2 ? 打完标签后怎么运行? 通过pytest命令行来运行pytest --help可以看到所有的命令。...首先在当前工程目录下,运行pytest是绝对能识别测试用例的。...小编直接输入pytest不能运行,提示没有模块,可能与pycharm的版本或者pytest的版本有关,也有可能是自己代码的设计问题。 pytest可以设置用例的顺序执行吗?

    91310

    Python测试框架pytest(24)配置文件pytest.ini

    配置文件可以改变 pytest运行方式,它是一个固定的文件 pytest.ini 文件,读取配置信息,按指定的方式去运行。...pytest.ini 放在项目的根目录下,名字也不能随意更改。 注意:pytest.ini 不能使用任何中文符号,包括汉字、空格、引号、冒号等等。...1.3、addopts addopts 参数可以更改默认命令行选项,当我们在命令行输入一堆指令去执行用例的时候,就可以用该参数代替,省去重复敲命令的工作。...范围指定文件目录参数或测试用例标识符,该选项才会启用。...pytest 收集测试用例,会递归遍历所有子目录,包括某些你明知道没必要遍历的目录,遇到这种情况,可以使用 norecursedirs 参数简化 pytest 的搜索工作。

    99440

    Pytest系列(14)- 配置文件pytest.ini的详细使用

    https://www.cnblogs.com/poloyy/category/1690628.html 前言 pytest配置文件可以改变pytest运行方式,它是一个固定的文件pytest.ini...文件,读取配置信息,按指定的方式去运行 非test文件 pytest里面有些文件是非test文件 pytest.ini:pytest的主配置文件,可以改变pytest的默认行为 conftest.py:...: xinlang xfail_strict = True 具体代码栗子 未设置 xfail_strict = True ,测试结果显示XPASS @pytest.mark.xfail() def...================ 1 failed in 0.02s ============================== addopts 作用:addopts参数可以更改默认命令行选项,这个当我们在...norecursedirs 作用:pytest 收集测试用例,会递归遍历所有子目录,包括某些你明知道没必要遍历的目录,遇到这种情况,可以使用 norecursedirs 参数简化 pytest 的搜索工作

    7.1K50

    浅浅的分享下这几天写pytest脚本的一些收获

    先来说下背景,为什么最近又在开始写pytest的脚本了,那自然是要把部门的接口自动化搞起来呗,之前搞的metersphere那套维护不下去了,加上一些其他原因,已经放弃了,打算试试新的。...用ai查了一下说貌似是不能这么使用,后来在网上查了下 ,貌似有的说pytest里面有个什么内置的request可以获取fixture,不过我试了下貌似没成功,可能用法有问题咯 2、今天遇到一个好奇怪的问题...,我代码的目录结构包含以下几个包:api_definition、testcase、testdata等,今天写脚本的时候,发现运行用例的时候,代码里面用到的from testdata.xxx import...然后传给pytest.mark.parametrize当数据驱动使用的,后来折腾了半天没解决,我就把获取数据库连接的写到一个工具类,然后定义为单例模式,保证一个数据库同一间只有一个连接对象 ,然后在conftest...里面写一个fixture的函数,每次运行完用例之后自动的关闭数据库连接。

    13410

    我敢打赌绝大多数程序员没有这么深入研究过 System.out.println()!

    java 运行时环境初始化,并且可以在执行期间由开发人员更改,代替在默认情况下的标准输出。...当我们深入分析,其调用顺序如下 println - > print - > write()+ newLine()。 这个顺序流是 Sun / Oracle JDK 的实现。...当我运行性能分析运行多个 System.out.println 并记录时间,执行时间会按比例增加。...但当我们开发生产质量软件,我们应该注意到应该使用记录组件(log4j 等),并且应该避免使用 System.out.println。 为什么? 灵活性:log4j 的记录器提供了多种记录级别。...粒度:在应用程序中,每个类都可以有不同的记录器并相应地进行控制。 实用性:在 System.out 中限制重定向消息的选项,但是如果是记录器(like log4j),则可以提供多种选项。

    70720

    常见恶意软件类型及危害

    病毒需要由用户手动启动,或者通过被感染设备上正在运行的应用程序来启动。 虽然病毒需要用户交互才能开始运行,但蠕虫可能存在更大的问题,因为蠕虫能够无需用户交互就自动传播到其他计算机和网络。...这会在一个单位内部网络中形成快速的传播,因为蠕虫可能通过单位内部网络的共享机制实现快速横向传播,感染多台服务器和关键设备。...蠕虫示例 - WannaCry Wannacry在发布产生了巨大影响,它能够通过搜索面向公众的中小型企业端口实现自动传播,从而对世界范围内的大量企业和政府都造成了巨大的威胁,并且导致了被感染单位的严重损失...为了表明他们的强硬态度,黑客还会在网上泄露被盗数据的样本,并声称,如果不能及时满足其要求,他们将在暗网上发布用户的其余数据。这一手段对于很多敏感数据被泄露的用户而言,具有致命的杀伤力。...当冰箱和咖啡机等家用物品在几乎没有身份验证的情况下获得wifi功能,同时也带来了网络安全问题。

    1K10
    领券