一个启用tmux驱动测试的pytest插件
项目描述
pytest-tmux
一个启用tmux驱动测试的pytest插件
此插件旨在帮助希望测试交互式cli的用户。
当使用 tmux
固定装置时,它基本上
- 创建tmux服务器(在pytest tmpdir中创建的套接字)
- 自动创建会话
- 自动连接到窗口
- 自动连接到面板
警告
由于此工具处于早期开发阶段,版本之间可能会发生很大变化,因此强烈建议在您的CI中使用此工具时指定严格版本。
文档
https://pytest-tmux.readthedocs.io/
功能
- 启用tmux驱动测试
- 启用具有重试的屏幕断言
- 启用具有重试的行断言
- 允许交互式调试测试
要求
- python >= 3.7
- 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 查看散列)
关闭
pytest_tmux-0.0.4.tar.gz的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | fb29c77af5575556fd52d1c86e26e6ecb8bf70b62dd562e431d2577ecdb41718 |
|
MD5 | 1ce62dfdfd448a01f330ece46faae350 |
|
BLAKE2b-256 | 2c7996555d649c2785bc3d57eb959f737fb8d9beaa2701ecc05f2a7d38470b04 |
关闭
pytest_tmux-0.0.4-py3-none-any.whl的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 1bd41fe4d9732cb472ee52aba557be67e18e4575efea067565091907144a321a |
|
MD5 | 5a29b41f718b959192aa52850ecb418b |
|
BLAKE2b-256 | 273393c25827d2cba59790c1cecf269819e2844fe936380c7186116200e705ee |