SuperAPI AI 工具集

roblox-testing

测试与质量

查看项目

更新于 10-16 05:07

技能介绍

用途:为 Roblox 游戏代码建立可测试结构并运行自动化测试与游玩测试。

主要能力与做法:

  1. 先让代码可测试:把游戏规则放进纯 ModuleScript(输入→输出,不用服务、不 yield),如伤害公式、背包操作、商店定价、状态机、序列化、校验。服务通过参数接收依赖(依赖注入),测试可传入假实现替代真实 DataStore、remote 或 Players。
  2. Jest Lua(推荐框架):Jest 的移植版,支持 describe/it/expect、mock、快照;TestEZ 为旧版,Jest Lua 3 附迁移指南。在 wally.toml 添加 dev-dependencies:Jest = "jsdotlua/jest@3.10.0"、JestGlobals = "jsdotlua/jest-globals@3.10.0"。测试文件用 .spec.luau,在每个测试根放 jest.config.luau(return { testMatch = { "**/*.spec" } })。运行脚本:require(ReplicatedStorage.DevPackages.Jest).runCLI(root, { ci = true }, { root }):awaitStatus(),再检查 result.results.numFailedTests。本地运行 Jest Lua 3 需在 Studio 的 ClientAppSettings.json 开启 FFlagEnableLoadModule = true。仅在测试构建中把 DevPackages 映射进 DataModel(单独 Rojo 项目,如 test.project.json)。
  3. 测试运行位置:Studio 命令栏/测试 Script(本地开发);Studio MCP(execute_luau、start_stop_play、get_console_output,供智能体对打开的场景跑测试与游玩测试);run-in-roblox(CLI 打开 Studio 运行脚本并输出,需已安装 Studio,适用于本地/Windows/mac CI);Open Cloud Luau Execution(无头 CI,在真实 Roblox 服务器对已发布版本运行脚本);Lune(无 Roblox API 依赖的纯 Luau 模块)。
  4. Open Cloud Luau Execution 流程:rojo build test.project.json -o test.rbxl 构建测试场景并作为专用测试场景的 Saved 版本上传;POST /cloud/v2/universes/{u}/places/{p}/versions/{v}/luau-execution-session-tasks 传 { "script": ... }(API key 需 universe.place.luau-execution-session:write 权限,速率约每 key 所有者 5 任务/分钟);轮询任务直到 COMPLETE/FAILED,读取 output.results 与日志。
  5. Studio 游玩测试:Test 标签的 Play(你+服务器)、Run(仅服务器、无角色)、Clients and Servers(2+ 玩家测复制、交易、PvP);网络模拟(延迟、抖动、丢包)测延迟补偿;设备模拟器与手柄模拟器;Streaming 用 StreamingTargetRadius = 64 测试;Studio 中 DataStore 需开启 API 访问并使用独立测试 universe 或数据存储名。
  6. 上线前 QA 清单:功能开始后加入的玩家与重生后可用;2+ 客户端下服务器状态权威、各客户端 UI 更新;玩家中途离开(交易、购买、回合)不留坏状态或泄漏表;remote 被刷或被发畸形参数时拒绝;数据保存与重进加载(含跨场景传送);移动端、手柄、键盘均可用且手机 UI 可读;Output 无错误/警告。

限制:资料未提供具体收费、价格、平台支持范围或效果数据;部分步骤依赖 Studio、Rojo、Wally、Open Cloud API key 等外部条件。