SuperAPI AI 工具集

warp-integration-test

测试与质量

查看项目

更新于 10-16 06:47

技能介绍

用途:该技能面向 Warp 项目 crates/integration/ 下的 Rust 集成测试,指导在自研 Builder/TestStep 框架中编写、运行和调试测试。这类测试不是普通单元测试,而是启动真实 Warp 应用实例、提供隔离的测试 HOME 目录,通过合成 UI 与终端事件驱动,并轮询断言直到成功或超时。

主要能力:框架由多个部分组成,包括 integration 运行器二进制(注册测试名到 Builder 工厂,每次只运行一个命名测试)、外层 cargo test/nextest 测试壳(调用二进制并转发有限环境变量,遇到特殊重跑码最多重跑 10 次)、test.rs 模块中心、ui_tests.rs 与 shell_integration_tests.rs 测试清单、Builder 封装、driver 与 step 等。新增测试需在 crates/integration/src/test/ 实现 pub fn test_name() -> Builder,在 test.rs 中添加并导出模块,在 bin/integration.rs 中 register_test!,并列入对应 nextest 宏清单文件。

使用方式:编写时优先使用高层 helper 与命名断言,依靠断言轮询而非硬编码 sleep;终端类测试先等待 bootstrap,若依赖块索引先清除启动块。运行单测:cargo run -p integration --bin integration -- test_name;通过 nextest:cargo nextest run --no-fail-fast --workspace test_name;需要真实显示时设置 WARPUI_USE_REAL_DISPLAY_IN_INTEGRATION_TESTS=1。调试可用 RUST_BACKTRACE=1、WARPUI_PAUSE_INTEGRATION_TEST_ON_FAILURE=1、WARPUI_PAUSE_INTEGRATION_TEST_AT_EVERY_STEP=1。截图或录像相关任务可配合 integration-test-video 技能。

适用场景与限制:适用于新增或修复 Warp 集成测试、验证用户可见行为。测试必须封闭自洽,不依赖开发者真实 home、shell 配置或机器状态;set_env 只影响运行时查询,不影响 option_env! 等编译期查询;重试不应掩盖确定性缺陷;真实显示类测试若无稳定路径不应默认在 CI 启用。资料未提供收费、价格或平台支持信息。