跳转到主要内容

一个启用tmux驱动测试的pytest插件

项目描述

pytest-tmux

PyPI version

Python versions

一个启用tmux驱动测试的pytest插件

此插件旨在帮助希望测试交互式cli的用户。

当使用 tmux 固定装置时,它基本上

  • 创建tmux服务器(在pytest tmpdir中创建的套接字)
  • 自动创建会话
  • 自动连接到窗口
  • 自动连接到面板

警告

由于此工具处于早期开发阶段,版本之间可能会发生很大变化,因此强烈建议在您的CI中使用此工具时指定严格版本。

文档

https://pytest-tmux.readthedocs.io/

功能

  • 启用tmux驱动测试
  • 启用具有重试的屏幕断言
  • 启用具有重试的行断言
  • 允许交互式调试测试

要求

  • python >= 3.7
  • pytest
  • tmux

安装

您可以通过pipPyPI安装"pytest-tmux"。

$ pip install pytest-tmux

配置功能

配置可以在不同的级别设置(按照优先级顺序)

  • 服务器
    • 通过覆盖tmux_server_config(作用域='session')固定装置
    • 环境变量
    • 命令行参数(见pytest --help中的--tmux-*开关)
  • 会话
    • 通过覆盖tmux_session_config固定装置
    • 在测试级别使用tmux_session_cfg标记
    • 在测试中动态使用tmux.config.session
    • 环境变量
    • 命令行参数(见pytest --help中的--tmux-*开关)
  • 断言
    • 通过覆盖tmux_assertion_config固定装置
    • 在测试级别使用tmux_assertion_cfg标记
    • 在测试中动态使用tmux.config.session
    • 在调用tmux.screen() / tmux.row()时使用timeout / delay参数
    • 环境变量
    • 命令行参数(见pytest --help中的--tmux-*开关)

用法

基本示例

import pytest
from inspect import cleandoc

def test_assert(tmux):
    # Set some options before session / windows is started
    tmux.config.session.window_command='env -i PS1="$ " TERM="xterm-256color" /usr/bin/env bash --norc --noprofile'
    assert tmux.screen() == '$'
    tmux.send_keys(r'printf "  Hello World  .\n\n"')
    expected=r"""
    $ printf "  Hello World  .\n\n"
      Hello World  .

    $
    """
    assert tmux.screen() == cleandoc(expected)

许可协议

根据MIT许可协议分发,"pytest-tmux"是免费和开源软件

问题

如果您遇到任何问题,请附上详细描述提交问题

项目详情


下载文件

下载适用于您的平台文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

pytest_tmux-0.0.4.tar.gz (11.1 kB 查看散列)

上传时间

构建分布

pytest_tmux-0.0.4-py3-none-any.whl (11.7 kB 查看散列)

上传时间 Python 3

由以下组织支持