当前位置: 首页 > 面试题库 >

Shell脚本的单元测试

丌官玺
2023-03-14
问题内容

多年来,我从事的几乎所有产品都涉及到一定程度的Shell脚本(或Windows上的批处理文件,PowerShell等)。即使我们使用Java或C
++编写了大量代码,但似乎总是存在一些集成或安装任务,而这些任务或任务可以通过Shell脚本更好地完成。

因此,shell脚本成为附带代码的一部分,因此需要像已编译的代码一样进行测试。有没有人对其中的一些shell脚本单元测试框架有经验,例如shunit2?目前,我主要对Linux
shell脚本感兴趣。我想知道测试工具能够很好地复制其他xUnit框架的功能和易用性,以及与持续构建系统(如CruiseControl或Hudson)进行集成的难易程度。


问题答案:

更新2019-03-01:我的偏好是现在蝙蝠。我在小型项目上使用了几年。我喜欢简洁明了的语法。我尚未将其与CI /
CD框架集成在一起,但是它的退出状态确实反映了套件的整体成功/失败,这比shunit2更好,如下所述。

上一个答案:

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

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

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


 类似资料:
  • 本文向大家介绍非常简单的Shell菜单脚本,包括了非常简单的Shell菜单脚本的使用技巧和注意事项,需要的朋友参考一下 本文给大家分享一个自己简单编写的Shell菜单脚本,傻瓜式的人机交互,人人都可以操作linux。 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。

  • 终于到shell 脚本这章了,在以前笔者卖了好多关子说shell脚本怎么怎么重要,确实shell脚本在linux系统管理员的运维工作中非常非常重要。下面笔者就带你正式进入shell脚本的世界吧。 到现在为止,你明白什么是shell脚本吗?如果明白最好了,不明白也没有关系,相信随着学习的深入你就会越来越了解到底什么是shell脚本。首先它是一个脚本,并不能作为正式的编程语言。因为是跑在linux的s

  • bash csh ksh zsh 基本语法 定义和使用变量 #!/bin/sh a=" hello world" echo $a echo 'a is xiaxaiwen${a}' if else if ....; then   .... elif ....; then   .... else   .... fi [] 条件测试 [] 中前后一定要加空格 sh

  • 问题内容: 我想检测python是否安装在Linux系统上,如果安装了python版本。 我该怎么做?是否有比解析输出更优雅的东西? 问题答案: 您可以按照以下方式使用: 元组记录在这里。您可以展开上面的Python代码,以适合您需求的方式格式化版本号,或者对它执行检查。 您需要检入脚本来处理未找到脚本的情况。 PS:我使用的语法有点奇怪,以确保与Python 2.x和3.x兼容。

  • 本文向大家介绍一个简单的MySQL备份Shell脚本,包括了一个简单的MySQL备份Shell脚本的使用技巧和注意事项,需要的朋友参考一下 说明:此脚本每七天做一次完全备份,以后每天做一次增量备份,完全备份使用mysqldump客户端工具,增量备份使用mysqlbinlog备份其二进制日志文件。

  • 问题内容: 我尝试谷歌搜索答案,但没有运气。 我需要使用我的超级计算机服务器,但是要运行我的python脚本,必须通过shell脚本执行。 例如我要执行 如何做到这一点? 问题答案: 只需确保python可执行文件在PATH环境变量中,然后在脚本中添加 细节: 在文件job.sh中,放入 执行此命令以使脚本可运行: 运行 :