SuperAPI AI 工具集

new-java-e2e-test-yaml-and-test

测试与质量

查看项目

更新于 10-15 21:52

技能介绍

用途:指导为 Java SDK 新增一个 failsafe 集成测试(*IT.java),并为其手工编写回放代理所需的 YAML 快照文件,使 CI 无需真实认证即可运行。

主要能力:说明快照目录与命名规则(test/snapshots/<category>/<snapshot_base_name>.yaml)、YAML 结构(models、conversations、messages 的 role/content)、占位符 ${system} 与 ${workdir} 的语义、多轮对话与工具调用(tool_calls、role: tool)的写法;给出 Java IT 测试类模板,包括 E2ETestContext.create()、ctx.configureForTest(category, name)、ctx.createClient()、createSession、sendAndWait 与断言流程;说明代理的请求匹配逻辑:系统消息用 ${system} 通配,用户消息按内容精确匹配,工具结果在归一化 ${workdir} 后比较,匹配后返回下一条 assistant 消息,CI 模式下无匹配会报 “No cached response found”。

使用方式:先选分类与快照基名,创建 YAML;再在 java/sdk/src/test/java/com/github/copilot/ 下新建 *IT.java;验证命令为 cd java、mvn spotless:apply、mvn failsafe:integration-test -Dit.test="MyFeatureIT#myTestMethod" -Denforcer.skip=true,最后 mvn clean verify。

限制与陷阱:CapiProxy.java 固定设置 GITHUB_ACTIONS=true,代理处于只读模式,无法通过运行 Java 测试录制快照,必须手工编写或直接用 Node.js 代理录制;YAML 中 user 内容须与测试发送的 prompt 完全一致;系统消息一般用 ${system};若快照中模型调用 view 等内置工具,CLI 会真实执行,文件须在测试 workDir 中预先创建;configureForTest 需显式传入快照基名,不要依赖 camelCase 到 snake_case 的自动转换。相关文件包括 E2ETestContext.java、CapiProxy.java、test/harness/replayingCapiProxy.ts、test/harness/server.ts 及现有 *IT.java 参考。