将 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 结合使用时如何打印输出 的相关文章

  • py.test 拆解查看测试是否失败并打印子进程输出

    如果测试失败 我想在 py test 拆解中打印子进程输出 或将其发送到任何其他人类可读的输出 是否可以在拆卸时检查测试是否失败 还有其他方法可以仅在测试失败期间获取子进程命令的输出吗 My code Test different scaf
  • 在 Flask-SQLAlchemy 中隔离 py.test 数据库会话

    我正在尝试使用 Flask SQLAlchemy 构建 Flask 应用程序 我使用 pytest 来测试数据库 问题之一似乎是在不同测试之间创建隔离的数据库会话 我编写了一个最小的完整示例来突出问题 请注意test user schema
  • 您将如何对这个 SQLAlchemy Core 查询/函数进行单元测试?

    我正在努力学习如何正确进行单元测试 鉴于这个功能 def get user details req user id users sa Table users db metadata autoload True s sa select use
  • 如果定义了构造函数,pytest 跳过测试类

    我有以下通过 py test 运行的单元测试代码 构造函数的存在会使整个类在运行时跳过 py test v s 已收集 0 件 已跳过 1 件 谁能向我解释 py test 的这种行为吗 我有兴趣了解 py test 行为 我知道不需要构造
  • pytest - 在 setup_module 中使用 funcargs

    我在 conftetst py 中包含了我自己的命令行选项 def pytest addoption parser parser addoption backend default test backend help run testx f
  • 如何在 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 适用于旧的模拟,但不适用于 unittest.mock

    我正在将一些代码从 Python 2 移植到 3 并且py test玩得不好patch装饰器来自unittest mock 当我使用patch装饰器将模拟传递到测试函数的参数中 py test相反 将该参数解释为固定装置 并且无法设置测试
  • py.test 无法导入我的模块

    我正在努力正确导入 python 我想要实现的是拥有一个包含多个源文件的模块和一个包含单元测试的测试文件夹 无论我做什么 我都无法让 py test 3 执行我的测试 我的目录布局如下所示 module init py testclass
  • 如何在 pytest 中测试类层次结构?

    我已经使用 pytest 一段时间了 并学会了喜欢参数化和固定装置 我第一次想测试一些具有分支继承结构的类 当然 我想为子类重用测试用例 假设我有以下包结构 mock pkg child py grandchild py parent py
  • 运行 py.test 时出现错误 ImportMismatchError

    当我在本地运行测试时 它工作正常 但是在创建 docker 并在容器内运行后 我收到以下错误 usr local lib python3 5 site packages pytest config py 325 in getconftest
  • 在参数化中传递 pytest 夹具

    通过在 pytest mark parametrize 中传递 conftest py 中定义的装置 我收到以下错误 pytest alist 0220 0221 test 1 py v s NameError name alist is
  • 如何将 pytest 装置与 django TestCase 一起使用

    我如何在TestCase方法 类似问题的几个答案似乎暗示我的例子应该有效 import pytest from django test import TestCase from myapp models import Category py
  • 如何将脚本作为 pytest 测试运行

    假设我有一个用简单脚本表示的测试assert 陈述 请参阅背景了解原因 例如 import foo assert foo 3 4 我如何以一种好的方式将该脚本包含在我的 pytest 测试套件中 我尝试了两种有效但不太好的方法 一种方法是将
  • Pytest 固定装置的范围“类”在每个方法上运行

    我正在尝试使用 Pytest 创建一个测试环境 这个想法是将测试方法分组到类中 对于每个班级 小组 我想附上config将要参数化的夹具 这样我就可以使用 配置 A 运行所有测试 然后使用 配置 B 运行所有测试 依此类推 但同时 我也想要
  • pytest:同一接口的不同实现的可重用测试

    想象一下我已经实现了一个名为的实用程序 可能是一个类 Bar在一个模块中foo 并为其编写了以下测试 测试 foo py from foo import Bar as Implementation from pytest import ma
  • 为什么 Pytest 对夹具参数执行嵌套循环

    使用 Pytest 我想编写一个测试函数 该函数接受多个装置作为参数 每个灯具都有几个参数 例如 test demo py 中是一个函数test squared is less than 10需要固定装置 negative integer
  • 为什么最简单的 requests_mock 示例在 pytest 中失败?

    我有一个特殊的问题requests mock 我想用它pytest测试我的 API 包装器库 我尝试过使用requests mock 文档中的第一个示例 http requests mock readthedocs io en latest
  • Pytest:取消选择测试

    通过 pytest 我们可以使用装饰器来标记测试 pytest mark slow def some slow test pass 然后 从命令行 可以告诉 pytest 跳过标记为 慢 的测试 pytest k slow 如果我有一个附加
  • 使用 Pytest 捕获 SystemExit 消息

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

随机推荐

  • 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