Ohhnews

分类导航

$ cd ..
foojay原文

TestBox 7发布:引入实时反馈、浏览器端IDE及现代化测试工作流

#软件测试#开发工具#boxlang#自动化测试#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.bxmrunner.cfm 端点通信,并实时流式传输规范(spec)结果。结果会在测试树中随着每个规范的完成即时显示——通过即为绿色,失败则为红色,并附带完整的错误消息,无需等待整个测试套件运行完毕。

你将获得:

  • 实时流式测试树 — 按规范(而非按套件)进行实时更新。
  • 深色/浅色主题 — 支持 localStorage 持久化存储。
  • 实时搜索 + 状态过滤器 — 按捆绑包(bundle)、套件或规范名称过滤;支持“通过”、“失败”、“错误”、“跳过”的状态标签。
  • 按捆绑包运行按钮 — 重新运行单个捆绑包,而无需触动其他部分。
  • 调试缓冲区面板 — 呈现每个捆绑包捕获到的 TestBox 调试输出。
  • 浮动进度小部件 — 显示当前捆绑包、已完成与总计的规范数量、动态进度条。
  • 可配置设置 — 运行器 URL、目录、捆绑包模式、标签、排除项等,全部保存于 localStorage

每个设置也可以通过 URL 查询参数进行覆盖,使 CI 集成变得非常简洁。

键盘快捷键

快捷键操作
⌘/Ctrl + K聚焦搜索栏
⌘/Ctrl + Enter运行所有测试
⌘/Ctrl + .重新加载/重新发现测试
⌘/Ctrl + ,打开设置
⌘/Ctrl + B切换展开/折叠所有捆绑包
⌘/Ctrl + D切换深色/浅色模式

入门指南

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 运行器获得了原生的流式支持:

$ bash
box testbox run --stream

这在 CI 流水线中特别有用,因为实时进度比等待缓冲后的最终报告更为重要。

预演与规范发现 (Dry Run & Spec Discovery)

TestBox 7 引入了两个长期需求的功能:规范发现预演模式。在提交完整套件执行之前,可以精确审计将会运行哪些测试。

如果你在调用 runner.bxm|cfm 时添加 ?dryRun=true,它将返回测试执行内容的 JSON 表示。

程序化预演 (Programmatic Dry Run)

(代码实现略)

CLI 预演

$ bash
box testbox run --dryRun

该功能会列出所有将要执行的套件和规范,并附带标签和跳过原因——非常适合覆盖率审计和 CI 测试清单报告。

JSON 输出

需要将结果输入到其他工具中吗? (代码实现略)

预演同样遵循正常运行的所有过滤器设置:--labels--bundles--directory--testSuites--testSpecs

BoxLang CLI 运行器 — 新增强大选项

BoxLang 运行器获得了一组重要的新标志,用于对输出、失败处理和性能分析进行精细控制。

专注于失败项

$ bash
box testbox run --only-failures

堆栈跟踪控制

$ bash
box testbox run --no-stacktrace

输出与性能标志

$ bash
box testbox run --verbose --debug --report-path=./logs

应用程序映射自动加载 (TESTBOX-440)

BoxLang 运行器现在会在运行测试前自动从项目根目录加载 Application.bx 映射。你的规范可以零配置使用自定义路径映射、数据源和设置,使 CLI 体验更接近完整的 Web 服务器环境。

其他显著改进

ConsoleReporter — 隐藏已跳过的测试 (TESTBOX-433)

当有许多待处理规范时,可以减少冗余的“已跳过”输出:

$ bash
# 在测试中配置
runner.run( showSkipped = false );

或者通过 CLI:--show-skipped=false

套件过滤修复 (TESTBOX-435)

直接套件名称匹配现在在任何嵌套深度下都是可靠的。如果套件名称与 testSuites 完全匹配,它将始终运行,不再出现嵌套套件被意外跳过的问题。

TestBox CLI 更新 (v1.8.0)

testbox-cli CommandBox 模块更新至 1.8.0,新增了两个命令:

$ bash
testbox discovery
testbox run

流式处理也通过 CLI 提供:

$ bash
testbox run --stream

引擎支持

引擎状态
BoxLang 1.x+✅ 推荐
Lucee 7.x✅ 新增
Lucee 6.x
Lucee 5.x⚠️ 已弃用
Adobe 2025
Adobe 2023⚠️ 已弃用
Adobe 2021❌ 已停止支持

Adobe 2021 不再受支持。请升级到 Adobe 2023+ 或迁移至 BoxLang。

立即升级

TestBox 7 现已通过 CommandBox 提供:

$ bash
box install testbox@latest

或锁定到 7.x 版本:

$ bash
box install testbox@7.0.0

完整的发行说明和问题链接请参考 TestBox 文档。一如既往,请在 我们的 JIRA 中提交 Bug 和功能请求。你也可以点击此处查看更新指南:https://testbox.ortusbooks.com/readme/release-history/whats-new-with-7.0.0