TestBox 7发布:引入实时反馈、浏览器端IDE及现代化测试工作流
目录
TestBox 7.x 专注于改进 BoxLang 和 CFML 应用程序的测试工作流。此版本引入了 BoxLang CLI 运行器的改进、通过 SSE(服务器发送事件)实现的实时流式测试执行、预演 (Dry Run) 功能、基于浏览器的 TestBox RUN 界面以及多项开发者体验增强。
查看更新详情:https://testbox.ortusbooks.com/readme/release-history/whats-new-with-7.0.0
TestBox RUN:专为测试打造的浏览器 IDE
TestBox 7 的核心是 TestBox RUN:这是一个自托管的单页 Web 应用 (bx/tests/index.bxm),你可以将其放入任何 BoxLang 项目并在浏览器中打开。无需构建工具链,无需外部服务,只需 BoxLang 即可。
它通过 Server-Sent Events (SSE) 与现有的 runner.bxm 或 runner.cfm 端点通信,并实时流式传输规范(spec)结果。结果会在测试树中随着每个规范的完成即时显示——通过即为绿色,失败则为红色,并附带完整的错误消息,无需等待整个测试套件运行完毕。
你将获得:
- 实时流式测试树 — 按规范(而非按套件)进行实时更新。
- 深色/浅色主题 — 支持
localStorage持久化存储。 - 实时搜索 + 状态过滤器 — 按捆绑包(bundle)、套件或规范名称过滤;支持“通过”、“失败”、“错误”、“跳过”的状态标签。
- 按捆绑包运行按钮 — 重新运行单个捆绑包,而无需触动其他部分。
- 调试缓冲区面板 — 呈现每个捆绑包捕获到的 TestBox 调试输出。
- 浮动进度小部件 — 显示当前捆绑包、已完成与总计的规范数量、动态进度条。
- 可配置设置 — 运行器 URL、目录、捆绑包模式、标签、排除项等,全部保存于
localStorage。
每个设置也可以通过 URL 查询参数进行覆盖,使 CI 集成变得非常简洁。
键盘快捷键
入门指南
TestBox RUN 随每个 TestBox 7 安装包自动提供,位于 bx/tests/ 目录下。通过 ColdBox CLI 生成的 ColdBox 应用已内置此功能。对于新项目,请参考相关文档进行配置。
注意: TestBox RUN 需要一个正在运行的 Web 服务器以及支持 SSE 的
runner.bxm端点。对于纯 CLI 应用,请使用带有--stream参数的 BoxLang 运行器(见下文)。
即将推出:TestBox RUN 桌面应用
我们正在基于 BoxLang 桌面运行时 构建 原生桌面应用 版本的 TestBox RUN —— 连接到任何本地或远程运行器 URL,无需浏览器即可获得相同的流式 UI 体验。请关注 testbox.run 获取抢先体验。
通过 SSE 进行流式测试执行
TestBox 7 发布了全新的 StreamingRunner,它会在每个规范完成时立即将结果推送到客户端,而不是缓冲整个套件的结果。
StreamingRunner (程序化调用)
(代码实现略)
BoxLang CLI --stream 标志
BoxLang CLI 运行器获得了原生的流式支持:
这在 CI 流水线中特别有用,因为实时进度比等待缓冲后的最终报告更为重要。
预演与规范发现 (Dry Run & Spec Discovery)
TestBox 7 引入了两个长期需求的功能:规范发现和预演模式。在提交完整套件执行之前,可以精确审计将会运行哪些测试。
如果你在调用 runner.bxm|cfm 时添加 ?dryRun=true,它将返回测试执行内容的 JSON 表示。
程序化预演 (Programmatic Dry Run)
(代码实现略)
CLI 预演
该功能会列出所有将要执行的套件和规范,并附带标签和跳过原因——非常适合覆盖率审计和 CI 测试清单报告。
JSON 输出
需要将结果输入到其他工具中吗? (代码实现略)
预演同样遵循正常运行的所有过滤器设置:--labels、--bundles、--directory、--testSuites、--testSpecs。
BoxLang CLI 运行器 — 新增强大选项
BoxLang 运行器获得了一组重要的新标志,用于对输出、失败处理和性能分析进行精细控制。
专注于失败项
堆栈跟踪控制
输出与性能标志
应用程序映射自动加载 (TESTBOX-440)
BoxLang 运行器现在会在运行测试前自动从项目根目录加载 Application.bx 映射。你的规范可以零配置使用自定义路径映射、数据源和设置,使 CLI 体验更接近完整的 Web 服务器环境。
其他显著改进
ConsoleReporter — 隐藏已跳过的测试 (TESTBOX-433)
当有许多待处理规范时,可以减少冗余的“已跳过”输出:
或者通过 CLI:--show-skipped=false
套件过滤修复 (TESTBOX-435)
直接套件名称匹配现在在任何嵌套深度下都是可靠的。如果套件名称与 testSuites 完全匹配,它将始终运行,不再出现嵌套套件被意外跳过的问题。
TestBox CLI 更新 (v1.8.0)
testbox-cli CommandBox 模块更新至 1.8.0,新增了两个命令:
流式处理也通过 CLI 提供:
引擎支持
Adobe 2021 不再受支持。请升级到 Adobe 2023+ 或迁移至 BoxLang。
立即升级
TestBox 7 现已通过 CommandBox 提供:
或锁定到 7.x 版本:
完整的发行说明和问题链接请参考 TestBox 文档。一如既往,请在 我们的 JIRA 中提交 Bug 和功能请求。你也可以点击此处查看更新指南:https://testbox.ortusbooks.com/readme/release-history/whats-new-with-7.0.0