Hermes WebUI 怎么用 scripts/test.sh 在本地运行完整 pytest 测试套件
Hermes WebUI 怎么用 scripts/test.sh 在本地运行完整 pytest 测试套件【免费下载链接】hermes-webuiHermes WebUI: The best way to use Hermes Agent from the web or from your phone!项目地址: https://gitcode.com/GitHub_Trending/he/hermes-webui给 Hermes WebUI 提交改动前需要在本地把项目的 pytest 测试套件跑一遍做验证。CONTRIBUTING.md 把这一步列为 Local Verification 的必做项AGENTS.md 进一步要求本地跑 pytest 一律走仓库自带的测试入口./scripts/test.sh不要用裸的python3、python -m pytest或系统 pytest——脚本负责在仓库内创建并维护 Python 3.11–3.13 的.venv避免本地误用不受支持的系统解释器。本文覆盖准备条件、运行完整套件、判读结果、聚焦运行以及脚本报错时的处理路径。准备条件机器上至少有一个受支持的 Python 解释器3.11、3.12 或 3.13。脚本按python3.13、python3.12、python3.11、python3的顺序查找取第一个版本合格的都找不到时报错退出提示安装 3.11/3.12/3.13 后重跑。环境提供 bash脚本头是#!/usr/bin/env bash。不需要预先安装任何测试依赖。脚本会检查.venv中是否缺少cryptography、mcp、pytest、pytest_asyncio、pytest_shard、pytest_timeout、ruff、yaml这些模块缺哪个就通过pip install -r requirements-dev.txt补装。requirements-dev.txt 还包含-r requirements.txt运行时依赖以及 Office 预览测试用到的python-docx、openpyxl、python-pptx。运行完整测试套件在仓库根目录执行cd hermes-webui ./scripts/test.shscripts/test.sh 的实际行为见脚本源码定位仓库根目录检查已有的.venv版本受支持且 pip 可用则直接复用.venv的 Python 不受支持或无法运行 pip 时自动重建。没有可用.venv时用支持版本的基础 Python 执行python -m venv创建创建失败会清理并给出指引。依赖缺失时在.venv内安装requirements-dev.txt——依赖只装进仓库本地虚拟环境不会装进系统或 Homebrew 解释器。不带参数时脚本自动补全默认参数tests/ -v --timeout60最后exec python -m pytest所以 pytest 的退出码就是脚本的退出码。规模参考README.md 给出的当前快照是约 11,500 个测试、约 1,150 个测试文件CI 在 Python 3.11、3.12、3.13 上各以 3 个并行 shard 运行同一套件。本地跑完整套件的时间请按机器性能预估文档没有给出固定耗时。验证结果脚本退出码为 0 说明全部通过非 0 时 pytest 输出中会列出 failed/errored 的具体测试项。只想确认收集数量而不是全量执行TESTING.md 给出的命令是./scripts/test.sh tests/ --collect-only -q脚本透传普通 pytest 参数聚焦运行某个文件或目录即可例如README.md 示例为./scripts/test.sh tests/test_regressions.py -v# 将 tests/test_auth.py 替换为你要运行的测试文件或目录 ./scripts/test.sh tests/test_auth.py -vpytest.ini 中定义了integration命中真实测试服务器或外部集成面和reproduction直接执行 issue 复现 fixture两个 marker定位特定类别的测试时可以作为 pytest 参数依据。常见报错与处理直接调用 pytest 报解释器不受支持tests/conftest.py 开头有版本守卫遇到不受支持的 Python 会以退出码 3 结束提示Run ./scripts/test.sh so the repo-local supported .venv is used。AGENTS.md 的处理建议是改回通过./scripts/test.sh运行再去调试产品代码。无法创建.venv脚本报Could not create a working .venv ...提示安装匹配的 venv/ensurepip 包Debian/Ubuntu 上是python3.x-venv或设置HERMES_WEBUI_TEST_PYTHON指向受支持解释器后重跑。想用指定的基础解释器# /path/to/python3.12 替换为本机 3.11/3.12/3.13 解释器的绝对路径 HERMES_WEBUI_TEST_PYTHON/path/to/python3.12 ./scripts/test.sh tests/ -v该变量只决定创建/重建.venv时用的基础解释器依赖仍装进仓库.venv。.venv是指向其他位置的符号链接脚本拒绝通过 symlink 创建或清空虚拟环境提示移除该 symlink 或设置HERMES_WEBUI_TEST_PYTHON后重跑。测试隔离与环境副作用按 tests/conftest.py 的说明测试运行在一个独立的服务器实例上——端口是进程启动时自动绑定的127.0.0.1临时端口状态目录独立且每次完整运行前和 teardown 时都会清理生产数据和真实 cron 任务不会被触碰。需要固定端口或状态目录例如可复现地调试时可用环境变量HERMES_WEBUI_TEST_PORT/HERMES_WEBUI_TEST_STATE_DIR显式指定。对环境的影响只有两点脚本可能创建或重建仓库内的.venv不写系统 Python以及按requirements-dev.txt在.venv内安装包。除此之外不修改仓库文件。与 CI 的一致性CI 对每个 PR 运行与本地相同的 pytest 套件Python 3.11/3.12/3.13 各 3 个并行 shard并配套 ruff lint 门禁和浏览器 smoke 测试。本地套件通过是提交 PR 的前提如果改动影响浏览器行为CONTRIBUTING.md 还要求按 TESTING.md 中的手动检查项补充验证——那是独立于./scripts/test.sh的手动流程不属于本文的执行范围。【免费下载链接】hermes-webuiHermes WebUI: The best way to use Hermes Agent from the web or from your phone!项目地址: https://gitcode.com/GitHub_Trending/he/hermes-webui创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考