将 pytest 与 xdist 结合使用时如何打印输出

2024-01-04

我正在使用 py.test 来运行测试。我将它与 pytest-xdist 一起使用来并行运行测试。我想在测试中查看打印语句的输出。

我有:Ubuntu 15.10、Python 2.7.10、pytest-2.9.1、pluggy-0.3.1。

这是我的测试文件:

def test_a():
    print 'test_a'


def test_b():
    print 'test_b'

当我跑步时py.test,没有打印任何内容。这是预期的:默认情况下, py.test 捕获输出。

当我跑步时py.test-s,它打印test_a and test_b, 正如它应该。

当我跑步时py.test-s-n2,再次没有打印任何内容。如何在使用时使打印语句正常工作-n2?

我已经读过pytest + xdist 不捕获输出 https://stackoverflow.com/questions/27006884/pytest-xdist-without-capturing-output和这个错误报告 https://github.com/pytest-dev/pytest/issues/680.


我刚刚在github上看到了关于这个问题的解释https://github.com/pytest-dev/pytest/issues/1693 https://github.com/pytest-dev/pytest/issues/1693

pytest-xdist使用 sys stdin/stdout 来控制执行, 显示打印输出的唯一方法应该是 std.err。

import sys
def test_a():
    print >> sys.stderr, 'test_a'


def test_b():
    print >> sys.stderr, 'test_b'

这不是一个好主意,但是工作。

您还应该注意 arg-s如果您使用 xdist 插件则没有用。


In python 3, 我认为logging.warning是一个更好的选择,因为它默认设置为写入 stderr。

import logging
logging.basicConfig(format='%(message)s')

def test_a():
    logging.warning('test_a')


def test_b():
    logging.warning('test_b')

要查看日志文件,请创建一个名为的文件pytest.ini并将以下内容添加到其中

log_cli = 1
log_cli_level = WARN
log_file = ./TestResults/test_log.log
log_file_level = WARN 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 pytest 与 xdist 结合使用时如何打印输出 的相关文章

  • 测试 post 请求时 Django 消息中间件问题

    我正在尝试测试一个 UpdateView 它将一条消息添加到重定向的成功页面 看来我的问题来自messages因为 pytest 返回 django contrib messages api MessageFailure 如果不安装 dja
  • 如何从测试内部访问 py.test capsys?

    py test 文档说我应该将 capsys 参数添加到我的测试方法中 但就我而言 这似乎不可能 class testAll unittest TestCase def setUp self self cwd os path abspath
  • 如何在 pytest 中仅运行未标记的测试

    我的 python 测试代码中有几个标记 pytest mark slowtest pytest mark webtest pytest mark stagingtest 我可以使用标记有选择地运行测试 例如pytest m slowtes
  • 使用 pytest 生成 csv 文件报告

    是否可以以某种方式在 csv 文件中生成测试执行报告 我使用 python selenium pytest 任何建议将不胜感激 我写了一个pytest csv https github com nicoulaj pytest csv插件 希
  • 自定义 pytest junitxml 失败报告

    我正在尝试内省测试失败并将附加数据包含到 junit xml 测试报告中 具体来说 这是对外部产品的一套功能测试 我想将产品的日志包含到故障报告中 使用找到的方法here https stackoverflow com questions
  • 如何从视图中删除单元测试的“@oidc.login_required”?

    I use 烧瓶样机 questions tagged flask oidc用于用户登录和pytest questions tagged pytest供测试用 对于单元测试 我想 删除 oidc require login 我怎样才能做到这
  • 模拟导入失败

    我该如何制作import pkg失败moduleA py 我可以打补丁pkg如果从中导入某些内容则会失败 否则不会失败 test py import os import moduleA from unittest mock import p
  • sqlalchemy:无法在拆卸时删除数据库

    我正在尝试使用 pytest 进行 sqlalchemy 但遇到以下问题 pytest fixture scope function def my session my db request from my models import Se
  • pytest - 如何将 pytest_addoption 值传递给 pytest 参数化?

    我必须在我存储在 pytest 中的 pytest 命令中传递一个参数addoption 我想在 pytest 中使用这些值parametrize功能 Command pytest range from 3 range to 5 test
  • 如何将 pytest 装置与 django TestCase 一起使用

    我如何在TestCase方法 类似问题的几个答案似乎暗示我的例子应该有效 import pytest from django test import TestCase from myapp models import Category py
  • 使用 pytest 动态控制测试顺序

    我想使用逻辑来控制测试的顺序 该逻辑将在它们已经运行时动态地重新排序它们 我的用例是这样的 我使用 xdist 并行化我的测试 每个测试都使用来自公共且有限池的外部资源 某些测试比其他测试使用更多的资源 因此在任何给定时间 当只有一小部分资
  • falcon,AttributeError:“API”对象没有属性“create”

    我正在尝试测试我的猎鹰路线 但测试总是失败 而且看起来我把所有事情都做对了 my app py import falcon from resources static import StaticResource api falcon API
  • 模拟pytest中的异常终止

    我的多线程应用程序遇到了一个错误 主线程的任何异常终止 例如 未捕获的异常或某些信号 都会导致其他线程之一死锁 并阻止进程干净退出 我解决了这个问题 但我想添加一个测试来防止回归 但是 我不知道如何在 pytest 中模拟异常终止 如果我只
  • 如何在 pytest 中将单元测试和集成测试分开

    根据维基百科 https en wikipedia org wiki Unit testing Description和各种articles https techbeacon com devops 6 best practices inte
  • pytest - 测试流程顺序

    我有一个类似于下面的 pytest 代码 如果我使用 count 3 运行它 它将运行 test first 3 次 然后运行 test second 3 次 如果我希望它运行 test first test second 并重复该流程怎么
  • 如何定义一个 pytest 夹具供给定测试子目录中的所有测试使用?

    给定一个目录tests有几个子目录 每个子目录都包含测试模块 如何创建一个pytest仅在特定子目录中找到的每个测试之前运行的固定装置 tests init py subdirXX test module1 py test module2
  • Pytest如何在范围“class”中包含“setup”fixture

    我正在使用 pytest 通常将我的测试分组为包中模块的 镜像 为了在我的测试模块中有一个良好的结构 我喜欢将一些测试分组到类中 即使我使用的是 pytest 我遇到了灯具范围级别的问题 考虑这个最小的例子 import pytest py
  • 使用 Pytest 捕获 SystemExit 消息

    我正在使用 pytest 编写测试 我遇到了一些函数抛出异常的情况SystemExit如果输入错误 终端上会显示一些错误消息 我想为以下情况编写测试SystemExit抛出并验证输出错误消息中是否有特定字符串 这是代码 def test v
  • 当 py.test 测试失败时,PyCharm 是否可以进入调试状态

    运行测试时py test有一个 pdb失败时输入 pdb 的选项 从 PyCharm 中运行相同的测试时是否有类似的方法进入调试器 有一个 py test 插件 pytest pycharm https github com jlubcke
  • Python 3.10 中有 setUpClass 的异步等效项吗?

    我一直在使用unittest IsolatedAsyncioTestCase测试我的异步方法 我一直在利用setUpClass asyncSetUp创建夹具和asyncTearDown进行清理 到目前为止一切进展顺利 但现在我有一个新的要求

随机推荐

  • iOS 上的 Jquery mobile 1.4 页面底部的固定元素隐藏焦点上的输入文本

    你好 我正在使用 Jquery mobile 1 4 构建 cordova 3 应用程序 我的 Mac 上的 Safari 和 Chrome 对以下内容没有任何问题 但是当我在真实设备或 iOS 模拟器上部署并想要在字段中输入时 我会发现页
  • cmake 的全局默认设置

    有没有类似的东西MAKEFLAGS环境变量为cmake 设置一些全局默认值 例如CMAKE INSTALL PREFIX 不 CMake 没有类似的环境变量 您可以通过 CMake 中的环境变量设置的所有内容均已记录here https c
  • 检查数组是否包含另一个数组中的元素

    我有两个数组A 0 1 2 and B 2 1 0 如何检查A中的数字是否存在于B中 NOTE includes不是ES6 而是ES2016 Mozilla 文档 https developer mozilla org en US docs
  • logback登录时如何处理磁盘已满错误?

    我正在使用 slf4j logback 来登录我们的应用程序 早些时候我们使用的是jcl log4j 最近搬到了这里 由于我们的应用程序中的日志记录量很大 生产环境中可能会出现磁盘已满的情况 在这种情况下 我们需要停止日志记录 应用程序应该
  • virtualenv 与该系统或可执行文件不兼容

    我对 Linux Ubuntu 和安装 Python 软件包相当陌生 我在使用 mkvirtualenv 时遇到问题并且无法解决 mkvirtualenv mysite70 New python executable in mysite70
  • Word Addin/OfficeJS - 检测光标是否位于图表元素上

    我希望能够检查文档光标是否位于 MS Word API 内的图表元素内 现在我有一个插入文本的应用程序 但是当我尝试将所述文本插入图表标题时 它会删除图表并将其替换为我插入的内容控件 我不想删除图表 而是想通过上下文检查光标是否位于图表内部
  • JS Array a['1'] 不会给出错误

    我已经声明了一个数组a 1 2 3 4 5 当我写作时a 1 it 返回 2这很好 但是当我写的时候a 1 它也是给我 2而不是给出错误 我原以为那里会出现错误 为什么会有这样的行为 所有属性名称都是字符串 如果您传递一个数字 它会在用于查
  • PrimeFaces 单击逐行展开

    I have 行扩展 http www primefaces org showcase ui data datatable expansion xhtml数据表
  • 使用自定义 SKAction 的 EaseOut 操作

    我有以下自定义 SKAction 工作 但作为 EaseIn 而不是 EaseOut 我想让它缓出 我使用网络上找到的各种缓动方程来纠正它 却惨遭失败 let duration 2 0 let initialX cameraNode pos
  • 谁能破译这段代码?

    以下是我在访问日志中看到的一些奇怪代码示例 有人能解码这个吗 例如 xb3 xe1 xdd H t xd5 xd2 xf0ml xf1 x10 xee xa0 xeaY xa5 xe7 x81d xd5 x1f xd9 QI xd9 xfb
  • teamcity 中的 Mercurial VCS 证书验证失败

    我尝试使用 teamcity 配置 Mercurial 但出现以下错误 stderr 中止 错误 ssl c 504 错误 14090086 SSL例程 SSL3 GET SERVER CERTIFICATE 证书验证失败 尝试了以下签名证
  • 提交后台作业并用结果更新阶段

    我对 JavaFX 2 完全是个菜鸟 今天早上开始使用我正在改编的 HelloWorld 我需要使用后台线程的结果更新文本节点 对于 JavaFX2 我需要注意什么特别的地方吗 或者提交可调用对象并更新文本就足够了 指向教程的指针将不胜感激
  • 如何使用面向对象技术验证 PHP 中的表单字段

    我创建了一个 验证 类来验证两个字段 即 名字 和 姓氏 它工作不正常 当字段为空时它显示错误 但是当我提交包含非空字段的表单时 错误仍然存 在 如何在表单提交时执行此操作
  • 在node.js中分离文件服务器和socket.io逻辑

    我对 Node js 相当陌生 我发现随着项目规模的增长 将项目分成多个文件非常复杂 我之前有一个大文件 它既充当文件服务器又充当多人 HTML5 游戏的 Socket IO 服务器 理想情况下 我希望将文件服务器 socket IO 逻辑
  • 如何在同一活动中实现具有不同项目列表和不同点击操作的多个微调器

    我想在Android中实现两个不同的微调器 微调器有不同的数据集 这是带有年龄的微调器 它使用定义的包含所有年龄范围的字符串数组 例如18 20 19 21 etc
  • 如何使用 play 框架渲染一个简单的 html 页面?

    这是使用 play 框架版本 2 渲染纯 html 文件的方法吗 我不想将其放在 public 文件夹中 因为稍后会添加一些动态信息 这是我的解决方案 在路线中 我做了一些配置 如下所示 GET hello html controllers
  • 如何在Android中打开/关闭导航抽屉时立即刷新列表

    我已经创建了导航抽屉并在列表中显示项目 我的列表是静态的 但我正在显示点 因此 当用户选择列表中的项目并进行一些活动时 他就会获得积分 所以我想在他得到后立即更新积分 我怎样才能做到这一点 下面是我的代码 活动类别 Override pro
  • 在文本模式下的 Emacs 中设置 4 个空格缩进

    I ve been unsuccessful in getting Emacs to switch from 8 space tabs to 4 space tabs when pressing the TAB in buffers wit
  • “useEffect”钩子只触发一次?

    我正在为 React Native 开发一个猜测游戏 用户输入一个数字 手机尝试猜测它 每次手机生成猜测时 用户都可以单击 更大 更低 当用户输入数字并且计算机猜测彼此相等时 我们将进入游戏结束屏幕 游戏结束画面未渲染 在屏幕上渲染游戏的逻
  • 将 pytest 与 xdist 结合使用时如何打印输出

    我正在使用 py test 来运行测试 我将它与 pytest xdist 一起使用来并行运行测试 我想在测试中查看打印语句的输出 我有 Ubuntu 15 10 Python 2 7 10 pytest 2 9 1 pluggy 0 3