用途:这是一套面向 Textual TUI 应用测试的 pytest fixture 模式集合,帮助把重复的测试初始化代码抽取为可复用的 conftest.py 配置,提高测试效率与一致性。
主要能力:提供应用工厂 fixture(返回 App 与 Pilot 元组)、参数化应用工厂(支持不同配置)、自定义终端尺寸 fixture(验证响应式布局,如 size=(120, 40) 与 (60, 20))、快照 fixture(关闭动画以获得稳定结果,配合 snap_compare)、以及多种 mock fixture,包括异步 API 客户端、数据库连接、冻结时间与环境变量。还介绍 fixture 组合、异步上下文管理器,以及测试目录组织方式(unit、integration、snapshot 分层 conftest)。
使用方式:在 pyproject.toml 中设置 pytest 选项,例如 [tool.pytest.ini_options] 下 asyncio_mode = "auto"、testpaths = ["tests"],可省去 @pytest.mark.asyncio。fixture 需使用 async def 与 yield,通过 async with app.run_test() as pilot 获取 Pilot。测试中用 pilot.press 模拟按键、pilot.pause 等待、app.query_one 断言渲染结果,并用 await pilot.app.workers.wait_for_complete() 等待工作线程完成。
限制:资料主要给出代码模式与常见陷阱(fixture 非 async、漏写 yield、scope 选择不当、mock 未清理等),未提供完整安装命令、版本要求、收费或性能数据;实际可用性取决于具体项目结构,暂未提供更多说明。