Hermes Agent单元测试需按四步生成:一、用Pytest+Mock依接口schema自动生成覆盖正常/异常/边界场景的测试;二、从TS类型定义反向导出Jest测试骨架并确保类型安全;三、基于OpenAPI 3.0生成端到端HTTP测试,校验状态码与JSON Schema;四、用Playwright录制前端操作流并转译为含显式断言的Python脚本。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您需要为Hermes Agent编写单元测试,但缺乏现成的测试用例模板或自动化生成能力,则可能是由于未采用结构化提示与代码契约驱动的生成策略。以下是生成高质量单元测试代码的步骤:
一、基于Pytest+Mock的测试用例自动生成
该方法利用预定义的Agent接口签名与典型交互模式,结合LLM提示工程批量生成可运行的Pytest测试函数,覆盖正常路径、异常注入与边界参数组合。
1、在项目根目录创建tests/generate/目录,并放置agent_interface_schema.json,内容包含process_message输入字段名、类型约束及必填标识。
2、执行命令hermes -s pytest-testgen --input src/hermes/agent.py --schema tests/generate/agent_interface_schema.json --output tests/test_agent_auto.py。
3、检查生成文件中每个test_前缀函数是否包含mock.patch装饰器,且对消息队列publish、HTTP client调用、数据库session.commit均使用return_value模拟返回。
4、验证所有断言语句是否包含assert isinstance(result, dict)与assert "status" in result且result["status"] == "success"等核心字段校验。
二、从TypeScript类型定义反向导出Jest测试骨架
该方法适用于已启用strict TypeScript编译的Hermes Agent项目,通过解析.d.ts声明文件提取函数签名与泛型约束,生成具备类型感知的Jest测试桩。
1、确保tsconfig.json中"declaration": true与"emitDeclarationOnly": true已启用,并运行npx tsc生成src/hermes/agent.d.ts。
2、调用hermes chat -q "根据以下TypeScript接口定义,生成Jest测试文件,要求:每个方法对应一个describe块;每个入参组合生成独立it用例;所有any类型参数必须替换为具体字面量值;输出纯JavaScript代码,不带注释。" --file src/hermes/agent.d.ts。
3、将输出内容保存为tests/test_agent_typescript.test.js,确认其import语句指向dist/下的ESM模块路径。
4、运行npx jest --testPathPattern="test_agent_typescript" --coverage,检查Coverage表中Functions列是否达到100%。
三、依据OpenAPI 3.0规范生成端到端HTTP测试用例
该方法面向暴露REST API的Hermes Agent服务实例,将OpenAPI文档作为唯一可信源,自动构造请求体、断言响应状态码与JSON Schema合规性。
1、启动本地Hermes Agent服务并访问/docs/openapi.json,保存为openapi-spec.json至tests/openapi/目录。
2、执行hermes -s openapi-testgen --spec tests/openapi/openapi-spec.json --base-url http://localhost:8000 --output tests/test_http_openapi.py。
3、确认生成的测试类中每个test_post_XXX方法均含response = requests.post(...)与assert response.status_code == 200语句。
4、检查每个响应体断言是否调用jsonschema.validate(instance=response.json(), schema=expected_schema),且expected_schema来自spec中对应path的responses.200.content.application/json.schema。
四、使用Playwright录制用户操作流并转译为断言驱动测试
该方法适用于集成Hermes Agent前端控制台的场景,通过真实浏览器交互捕获行为序列,再映射为可断言的Python Playwright脚本。
1、启动Hermes Agent管理界面http://localhost:3000/agent-console,打开Playwright Inspector并点击Record按钮。
2、在界面中依次执行:选择Agent类型下拉框→输入配置JSON→点击Deploy→等待Status变为Running→点击Logs标签页查看输出。
3、停止录制后,选择Export as Python (Playwright),保存为tests/test_console_flow.py。
4、手动修改脚本,在click操作后插入expect(page.get_by_text("Running")).to_be_visible(timeout=5000),确保关键状态变更被显式断言。


















