gpt4 book ai didi

linux - shell脚本的单元测试

转载 作者:IT老高 更新时间:2023-10-28 12:30:03 25 4
gpt4 key购买 nike

这些年来我从事的几乎所有产品都涉及某种程度的 shell 脚本(或 Windows 上的批处理文件、PowerShell 等)。尽管我们用 Java 或 C++ 编写了大部分代码,但似乎总有一些集成或安装任务最好使用 shell 脚本来完成。

因此,shell 脚本成为交付代码的一部分,因此需要像编译后的代码一样进行测试。有没有人有使用过一些 shell 脚本单元测试框架的经验,例如 shunit2 ?我现在主要对 Linux shell 脚本感兴趣;我想知道测试工具与其他 xUnit 框架的功能和易用性的重复程度如何,以及与 CruiseControl 或 Hudson 等持续构建系统集成的难易程度。

最佳答案

2019-03-01 更新:我的偏好是 bats现在。我已经在小型项目上使用了几年。我喜欢干净、简洁的语法。我没有将它与 CI/CD 框架集成,但它的退出状态确实反射(reflect)了套件的整体成功/失败,这比下面描述的 shunit2 更好。


以前的答案:

我正在使用 shunit2用于与 Linux 环境中的 Java/Ruby Web 应用程序相关的 shell 脚本。它易于使用,与其他 xUnit 框架没有太大区别。

我没有尝试与 CruiseControl 或 Hudson/Jenkins 集成,但在通过其他方式实现持续集成时,我遇到了这些问题:

  • 退出状态:当测试套件失败时,shunit2 不使用非零退出状态来传达失败。因此,您要么必须解析 shunit2 输出以确定套件的通过/失败,要么将 shunit2 更改为像某些持续集成框架所期望的那样,通过退出状态传达通过/失败。
  • XML 日志:shunit2 不会生成 JUnit 样式的 XML 结果日志。

关于linux - shell脚本的单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/971945/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com