agentic_huge_data_base / wiki
页面 Open WebUI · 17 开发与测试·DeepWiki 中文全文译文

17 · 开发与测试(Development and Testing)

多模型对话工作台与知识应用入口 · 本章是 Open WebUI DeepWiki 中文译文的独立章节页,保留原始链接、源码锚点、模块标签和章节层级。

项目Open WebUI 章节17 状态全文译文 模块测试、发布与运维、接口与服务契约、界面与交互、工具、记忆与模型调用
源码线索
  • .github/ISSUE_TEMPLATE/bug_report.yaml
  • .github/ISSUE_TEMPLATE/feature_request.yaml
  • .github/pull_request_template.md
  • .github/workflows/build-release.yml
  • .github/workflows/docker-build.yaml
  • .github/workflows/format-backend.yaml
  • .github/workflows/format-build-frontend.yaml
  • .github/workflows/release-pypi.yml
  • docs/SECURITY.md
  • hatch_build.py
模块标签
  • 测试、发布与运维
  • 接口与服务契约
  • 界面与交互
  • 工具、记忆与模型调用
  • 频道、笔记与协作

中文译文

开发与测试(中文译文)

原始 DeepWiki 页面:https://deepwiki.com/open-webui/open-webui/17-development-and-testing
翻译时间:2026-06-09T16:11:57.177Z
翻译模型:deepseek-chat
原文字符数:7955
项目:Open WebUI (open-webui)

---

开发与测试

相关源文件

以下文件用于生成此 Wiki 页面:

  • .github/ISSUE_TEMPLATE/bug_report.yaml
  • .github/ISSUE_TEMPLATE/feature_request.yaml
  • .github/pull_request_template.md
  • .github/workflows/build-release.yml
  • .github/workflows/docker-build.yaml
  • .github/workflows/format-backend.yaml
  • .github/workflows/format-build-frontend.yaml
  • .github/workflows/lint-backend.disabled
  • .github/workflows/lint-frontend.disabled
  • .github/workflows/release-pypi.yml
  • CONTRIBUTOR_LICENSE_AGREEMENT
  • docs/SECURITY.md
  • hatch_build.py
  • vite.config.ts

本文档为参与 Open WebUI 代码库开发的贡献者提供高层次技术指导,涵盖环境搭建、测试基础设施、代码质量保障和版本管理等核心工作流程。

---

开发环境搭建

本地开发需要双栈环境:SvelteKit 前端需要 Node.js 运行时,FastAPI 后端需要 Python 环境。

本地开发要求
  • Node.js:前端构建和单元测试的标准版本为 22 1
  • Python:官方构建和 PyPI 发布使用版本 3.11 1
  • 包管理器npm 管理前端资源 1,后端使用标准 Python 构建工具 2
开发工作流程

前端由 Vite 管理,后端使用 FastAPI。关键构建钩子自动完成集成:

  • npm install --force:在构建过程中安装前端依赖 1
  • npm run build:生成可用于生产环境的前端包 1
  • python -m build .:构建用于分发的集成 Python 包 1

有关详细的环境配置步骤,请参阅 开发环境搭建

来源:012

---

测试基础设施

Open WebUI 采用多层测试策略,涵盖单元测试、集成测试和端到端(E2E)测试。

测试套件
  • 前端单元测试:由 Vitest 驱动(npm run test:frontend1
  • 前端 E2E 测试:由 Cypress 驱动,针对运行中的实例验证界面 0
  • 手动验证:贡献者需在提交前对 URL 编码、HTML 实体等边界情况执行手动测试 0
集成测试组件
graph TD
    subgraph "测试运行器"
        VT["Vitest (npm run test:frontend)"]
        CY["Cypress (手动/CI)"]
        RUFF["Ruff (后端检查)"]
    end

    subgraph "基础设施实体"
        DOCKER["Docker 引擎"]
        GH_ACT["GitHub Actions 运行器"]
    end

    subgraph "代码实体"
        VITE_CONF["vite.config.ts"]
        HATCH_HOOK["hatch_build.py"]
        FE_WORK["format-build-frontend.yaml"]
    end

    VT --> FE_WORK
    RUFF --> FE_WORK
    FE_WORK --> GH_ACT
    GH_ACT --> DOCKER
    HATCH_HOOK --> VITE_CONF

    linkStyle default stroke-width:2px;

图示:测试运行器与系统实体之间的关系

有关编写测试和使用测试工具的文档,请参阅 测试基础设施

来源:012

---

代码质量工具

项目通过自动化的 lint 和格式化工具对 Svelte 和 Python 代码库强制执行严格的编码标准。

工具链
  • 前端:使用 prettier 进行格式化(npm run format),使用 i18next 进行翻译解析(npm run i18n:parse4
  • 后端:使用 ruff(版本 >=0.15.5)进行快速的 Python 格式化和 lint 检查 2
Lint 与格式化流水线
语言工具命令CI 检查
TypeScript/SveltePrettiernpm run formatgit diff --exit-code 1
PythonRuffruff format --check .Format Backend 任务 1

有关配置详情和 CI 集成,请参阅 代码质量工具

来源:01

---

版本管理与贡献

Open WebUI 遵循结构化的发布流程,并对社区贡献有特定要求。

版本管理策略

版本号在 package.json 中管理,并在发布过程中同步 1

  • 发布自动化:GitHub Actions 在 main 分支上触发,创建标签和发布 1
  • Docker 分发:自动化构建生成 latestcuda 特定镜像 2
贡献工作流程

所有贡献者必须针对 dev 分支提交 PR;向 main 分支提交的 PR 会被自动关闭 2

  • CLA:必须签署贡献者许可协议以验证贡献的有效性 01
  • 变更日志:PR 描述中必须包含 "Keep a Changelog" 条目 0
  • 安全:漏洞必须通过 GitHub 安全页面报告,而非公开的 Issue 0
发布与分发流程
graph LR
    subgraph "源码空间"
        PJ["package.json (版本)"]
        CL["CHANGELOG.md"]
        VC["vite.config.ts (APP_VERSION)"]
    end

    subgraph "工作流空间"
        REL_WF["build-release.yml"]
        DOCKER_WF["docker-build.yaml"]
        PYPI_WF["release-pypi.yml"]
    end

    subgraph "分发空间"
        GH_REL["GitHub Release (v*)"]
        GHCR["ghcr.io/open-webui (Docker)"]
        PYPI["PyPI (open-webui wheel)"]
    end

    PJ -- "jq 提取" --> REL_WF
    CL -- "awk 注释" --> REL_WF
    VC -- "定义 APP_VERSION" --> REL_WF
    REL_WF -- "gh release create" --> GH_REL
    REL_WF -- "workflow_dispatch" --> DOCKER_WF
    DOCKER_WF -- "USE_CUDA=true" --> GHCR
    PJ -- "python -m build" --> PYPI_WF
    PYPI_WF -- "pypa/gh-action-pypi-publish" --> PYPI

    linkStyle default stroke-width:2px;

图示:构建与打包实体关联

有关发布流程和变更日志维护的更多信息,请参阅 版本管理与变更日志

来源:012345