SuperAPI AI 工具集

driver-ui-tests

测试与质量

查看项目

更新于 10-16 07:20

技能介绍

用途:指导在 IntelliJ 平台(intellij-community)中用 IDE Starter 与 UI Driver 框架编写 UI 测试,并可关联 TestOps 用例。

主要能力与用法:测试基于 JUnit 5,用例项目由 com.intellij.ide.starter.models.TestCase 表示,针对具体 IDE 运行。页面对象继承 UiComponent,用 byAccessibleName、byClass、byVisibleText 等选择器定位元素;多处匹配时先定位父元素再检索。类级必须加 @Subsystems.、@Features.、@Components.* 注解,关联 TestOps 时加 @AllureId("test_case_id")。测试开始时用 waitForIndicators() 等待导入与索引完成;打开文件用 openFile 而非 UI 导航。调用动作时注意 invokeAction 的 now 参数:后续跟键盘输入用 now=true,等待对话框出现用 now=false。可通过自定义 waitFor 等待条件,通过 @Remote 接口经 driver.service 读取 IDE 状态(插件类需指定 plugin)。可用 -D VM 选项在启动前预置 registry 键。工具栏带文字动作渲染为 ActionButtonWithText,SDK 的 actionButton(text) 只搜 ActionButton 会匹配不到,需按 visible_text 跨两种变体匹配。Playwright 可在同一测试 JVM 中驱动真实浏览器。

运行与调试:驱动测试需完整构建的 IDE,推荐用 ./tests.cmd --module intellij.driver.tests --test <全限定类名> 运行。失败后可查看 out/ide-tests/... 下的 UI 层级、idea.log、截图与异常;运行中可访问 http://localhost:<port>/api/remote-driver/ 查看实时 UI 层级。

限制:不要使用 Thread.sleep() 或 delay();测试逻辑应包在 step("描述") 中;断言需验证确实会失败。本文档未提供收费、价格与授权信息。