2024年Clojure调查 中分享您的想法!

欢迎!请参阅关于页面以获取更多有关如何使用本网站的信息。

0
ClojureScript
预期行为

{{./script/test}} 的任何失败都会导致非零退出码,并在摘要中显示失败的某种指示。
这并不意味着我们快速失败,我们像现在一样运行所有可用的目标环境。

实际行为

摘要报告了测试的环境数量(例如,{{测试了 6 个可能的 js 目标}}),但在摘要中没有提供这些环境中失败的指示。
也总是以 0 退出。
因为 {{./script/test}} 产生大量输出,并且失败被隐藏在该输出中,当有东西失败时,很容易假设成功。

相关

CLJS-3098 - 这项工作应与 Windows 的 Git Bash 兼容

另请参阅

{{./script/test-simple}}

分析

初步测试表明 {{./script/test-simple}} 没有运行,需要将 {{:main}} 添加到编译器选项中。

方法
  1. 将 {{./script/test}} 和 {{./script/test-simple}} 中的重复代码移动到共享的 {{./script/test-runner}}。
  2. 为每个测试目标产生一行摘要,传达通过、失败或跳过的状态。
  3. 如果没有失败并且至少有一个目标通过(考虑目标跳过,如果没有全部跳过,可以),则退出状态为 0(成功),否则退出状态为 1(失败)。
  4. 使用颜色突出显示关键输出以便快速解析。
  5. 尊重 NO_COLOR (\https://no-color.org/\), 为不喜欢彩色输出的用户
屏幕截图

为了帮助审阅者,我包括了一些新摘要部分的屏幕截图。

成功

以下将返回退出状态 0
!success.png(图片
)success-with-skip.png!

使用 NO_COLOR
!success-nocolor.png!

失败

以下将返回退出状态 1
!fail.png(图片
)fail-with-success-and-skip.png(图片
)fail-with-success.png(图片
)fail-with-skip.png(图片
)fail-skip.png!

实现说明
  1. \!\#/bin/sh 切换到 \!\#/bin/env bash 以使生活更轻松。我不认为这有争议,但我认为值得提出。
  2. 未将 Windows {{script/test.ps1}} 纳入这项工作的范围。
  3. 应用于 GraalVM on Windows 的 CLSJ-3098 修复。
观察
  1. 持续集成不运行 {{./script/test}}。作为打补丁器,了解我正在执行与 CI 相同的测试会很好,但这将是另一个单独的工单的主题。
测试说明

在以下环境中脚本执行后的手动结果验证:
1. macOS Mojave
1. 通过本地 Docker 在 Linux 上
1. 通过 SSH 连接到本地 Windows VM 在 Windows 10 上

脚本人工测试和生成的日志已附加在 cljs-3075...zip 文件中。这些脚本针对我的设置,但也包括用于 Linux 的 Dockerfile。入口点是 {{verify.sh}}。

注意
1. 为了支持在 Windows 上运行,将 CLJS-3098 {{bin/cljsc}} 和 {{bin/classpath_conv}} 应用到测试中的修补版本中。副作用是,这也解决了我特定安装的 Linux 上的测试失败问题,因为文件编码不是 utf-8。
1. 在这次修补之前,{{script/test}} 在 Windows 上无法工作,并且直到 CLSJ-3098 应用后才能在 Windows 上工作。

7 个答案

0

留言作者:lread

请参阅 JIRA 描述以获取详细信息。

0

留言作者:mfikes

这是 Lee 的第一个修补。他已列入签署 CA 的人员名单。

0

留言作者:mfikes

将 CLJS-3075.patch 添加到修补供应商 (i)

0

留言作者:lread

我会回来处理这个问题。它需要修改才能与 Git Bash 在 Windows 上的兼容。

0

留言作者:lread

添加了 CLSJ-3075-2.patch,其中
包括适用于 GraalVM 在 Windows 上的 CLJS-3098 修复
消除了对有争议的 bash {{eval}} 的使用
* 修复了用于搜索失败的 grepping 问题的修复。见 {{CLSJ-3114}}

0
by

留言作者:lread

好的,这一项已经准备好审查。我认为可视化方面有所不足,所以在描述中增加了一些,希望这能使得审查更简单。谢谢,请告诉我您的看法。

0
by
...