拓冰建站拓冰建站
首页 / 资讯中心 / 正文

Free Claude Code 烟雾测试指南:smoke 目录 live 产品测试体系详解

Free Claude Code 烟雾测试指南smoke 目录 live 产品测试体系详解【免费下载链接】free-claude-codeUse Claude Code, Codex, Pi, and OpenCode and more for free (1.3B free tokens) from your terminal, app, IDE, or phone like OpenClaw (voice supported ToS friendly)项目地址: https://gitcode.com/GitHub_Trending/fr/free-claude-codeFree Claude Code是一个让 Claude Code、Codex、Pi、OpenCode 等 10 个编码 Agent 免费使用 1.3B 免费 token 的开源代理服务。它内置了一套完整的smoke 烟雾测试体系通过smoke/目录下的 live 产品测试真实启动服务器、调用真实模型供应商、甚至发送机器人消息端到端验证产品的核心链路。本文带你完整理解这套 live 产品测试体系的设计与运行方法帮你像贡献者一样验证代理服务的可靠性。为什么需要 smoke 烟雾测试Free Claude Code 支持 50 多个模型供应商和 10 个编码客户端任何一处断链都会直接影响用户。项目将测试分为两层层级位置作用网络依赖契约测试tests/离线可跑纯uv run pytest保持绿色无烟雾测试smoke/live 产品级验证启动子进程、调用真实供应商需要本地环境核心原则写在 smoke/README.md 中smoke/是local-only仅限本地它可以启动子进程、调用真实供应商、触碰本地模型服务器甚至可选地发送/删除机器人消息。smoke 目录结构详解打开 smoke/ 目录体系一目了然smoke/ ├── prereq/ # 前置连通性检查liveness ├── product/ # 端到端产品场景live E2E ├── lib/ # 测试驱动服务器启动、子进程、报告、结果分类 ├── features.py # 功能清单单一事实来源 └── conftest.py # pytest 钩子跳过控制、报告写入smoke/prereq/连通性检查。证明服务器、路由、认证、CLI 脚本、供应商 ping、本地/models和机器人权限都可达。这些只是前置条件不算产品覆盖。smoke/product/端到端产品场景例如多轮对话、工具调用、模型回退、CLI 特性矩阵。功能级的 smoke 覆盖只来自这里。smoke/lib/测试基础设施。smoke/lib/server.py 负责启动独立测试服务器smoke/lib/report.py 负责把每次运行的结果写成 JSON 报告。功能清单features.py 是单一事实来源smoke/features.py 是一份显式的功能清单feature inventory按如下链路映射每个功能功能 → 子功能 → 场景 → 环境变量 → 预期行为 → 失败分类例如drop_in_claude_code_replacementClaude Code 平替同时挂载了pytest 契约测试tests/api/test_api.py、tests/cli/test_cli.pylive 前置检查路由探测、CLI 提示词产品 E2EClaude CLI 自适应思考、自动 WebSearch、VS Code / JetBrains 协议载荷这套设计保证每个公开产品行为都必须有确定性的契约测试 live 产品场景缺一不可。一键运行 live 产品测试1. 先收集测试确认结构正常uv run pytest smoke --collect-only -q2. 空跑一次不设置环境变量时全部跳过uv run pytest smoke -n 0 -s --tbshort不设置FCC_LIVE_SMOKE1时smoke/conftest.py 的pytest_collection_modifyitems钩子会给所有用例打上 skip 标记但仍会写入.smoke-results/跳过条目——报告从不缺席。3. 开启 live 执行$env:FCC_LIVE_SMOKE 1 uv run pytest smoke -n 0 -s --tbshort4. 供应商矩阵并行跑供应商场景可以并行执行同时保证每个供应商内部串行通过 pytest-xdist 的 loadgroup 分发见 smoke/conftest.py 中的xdist_group$env:FCC_LIVE_SMOKE 1 $env:FCC_SMOKE_TARGETS providers uv run pytest smoke -n auto --distloadgroup -s --tbshort测试目标Targets详解目标通过FCC_SMOKE_TARGETS环境变量选择逗号分隔或all。smoke/lib/config.py 把目标分为三类默认目标不发真实消息、不加载语音后端目标产品场景依赖环境api消息流、token 计数、错误、/stop、优化项流式消息需已配置供应商auth标准 bearer 认证、冲突的旧版头、无效/缺失认证无测试自动隔离 tokencli服务器入口、Claude CLI 自适应思考、自动 WebSearchClaude CLI 二进制clientsVS Code / JetBrains 协议载荷Pi、OpenCode、Aider、Cline 等 CLI对应二进制 供应商config环境变量优先级、废弃变量迁移、代理/超时无messaging模拟 Discord/Telegram 完整流程、会话树、持久化无providers多轮文本、自适应思考历史、工具、断连、错误已配置供应商tools强制 tool_use 与 tool_result 续接支持工具的供应商lmstudio/llamacpp/ollama本地/models 经代理的 Messages对应本地服务器在运行副作用目标显式 opt-in目标产品场景依赖环境telegram/discordgetMe、发送、编辑、删除、可选手动入站token 和 chat/channel IDvoice生成 WAV 后走本地 Whisper 或 NIM 转写VOICE_NOTE_ENABLEDtrueFCC_SMOKE_RUN_VOICE1大矩阵目标显式 opt-innvidia_nim_cli在 NIM 模型矩阵上跑 Claude Code CLI 特性矩阵对应 smoke/product/test_nvidia_nim_cli_product_live.py可用FCC_SMOKE_NIM_MODELS替换默认模型集。openrouter_free_cli在 OpenRouter 免费模型上跑同一特性矩阵。nvidia_nim_vision验证 Claude 风格图片工具结果以像素形式送达 NIM 视觉模型。失败分类看懂测试报告的关键每次运行后结果会写入.smoke-results/目录由 smoke/lib/report.py 生成 JSON并且自动脱敏所有变量名包含KEY、TOKEN、SECRET、WEBHOOK、AUTH的值。smoke/lib/outcomes.py 把每条结果分类为 6 种分类含义性质passed通过✅product_failure应用接受了场景但返回错误形状、崩溃、泄漏状态❌ 真失败harness_bug测试驱动自身假设错误❌ 真失败missing_env缺少凭证、二进制、供应商配置或 opt-in 开关跳过upstream_unavailable真实供应商或机器人 API 不可达跳过probe_timeout探测完成但 CLI 超时跳过target_disabledFCC_SMOKE_TARGETS未选中该目标跳过关键规则如果你用FCC_SMOKE_PROVIDER_MATRIX显式选了某供应商而它缺失则从跳过升级为失败——这防止矩阵配置错误被静默放过。实用场景示例只测本地 Ollama 供应商$env:FCC_LIVE_SMOKE 1 $env:FCC_SMOKE_TARGETS ollama $env:OLLAMA_BASE_URL http://localhost:11434 uv run pytest smoke/prereq smoke/product -n 0 -s --tbshort指定多供应商矩阵$env:FCC_LIVE_SMOKE 1 $env:FCC_SMOKE_PROVIDER_MATRIX open_router,nvidia_nim,deepseek,lmstudio,llamacpp,ollama uv run pytest smoke/product -n 0 -s --tbshort覆盖单个供应商的 smoke 模型$env:FCC_SMOKE_MODEL_DEEPSEEK deepseek-v4-pro每个供应商都有内置默认模型见 smoke/lib/config.py 的PROVIDER_SMOKE_DEFAULT_MODELS覆盖变量命名规则为FCC_SMOKE_MODEL_大写供应商ID。运行真实平台副作用测试$env:FCC_SMOKE_TARGETS telegram,discord,voice $env:FCC_SMOKE_RUN_VOICE 1 uv run pytest smoke/product -n 0 -s --tbshort细节设计Windows 兼容与模型矩阵避免嵌套uv runWindows 上子进程直接使用与测试运行器相同的 Python 解释器防止fcc-server.exe被锁定期间被替换。供应商 E2E 独立于主模型providers目标每个已配置供应商只跑一次不受MODEL、MODEL_FABLE、MODEL_OPUS、MODEL_SONNET、MODEL_HAIKU影响默认值来自供应商目录可被FCC_SMOKE_MODEL_*覆盖。报告含 worker 维度并行运行时每个 worker 单独写出report-worker-时间戳.json方便汇总排查。快速上手清单 克隆仓库git clone https://gitcode.com/GitHub_Trending/fr/free-claude-code在.env中配置至少一个供应商密钥uv run pytest smoke --collect-only -q确认收集正常设置FCC_LIVE_SMOKE1按需设置FCC_SMOKE_TARGETSuv run pytest smoke -n 0 -s --tbshort执行 live 产品测试打开.smoke-results/查看 JSON 报告按失败分类定位问题这套 smoke 体系的核心价值prereq 保证环境可达product 保证产品可用features.py 保证覆盖不遗漏outcomes 分类保证失败可解释。理解并运行它你就掌握了对 Free Claude Code 最完整的质量视角。【免费下载链接】free-claude-codeUse Claude Code, Codex, Pi, and OpenCode and more for free (1.3B free tokens) from your terminal, app, IDE, or phone like OpenClaw (voice supported ToS friendly)项目地址: https://gitcode.com/GitHub_Trending/fr/free-claude-code创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门