shell - 寻找自动化测试 kshell 应用程序的方法

标签 shell awk automated-tests

我继承了一个 shell 脚本应用程序,它是 kshell 脚本、awk 和 java 程序的组合。我已经为 java 片段编写了 JUnit 测试。

是否有一个好方法可以对 kshell 脚本和 awk 程序执行类似的操作?

我考虑过使用 JUnit 和 System.exec() 来调用脚本,但似乎应该有更好的方法。

最佳答案

我找到了shUnit2并会尝试。

更新尝试 shUnit 的结果

shUnit 按预期工作。脚本文件是用定义的测试函数编写的,然后调用 shUnit。

示例:

#!/bin/sh
testFileCreated()
{
  TESTFILE=/tmp/testfile.txt
  # some code that creates the $TESTFILE
  assertTrue 'Test file missing' "[ -s '${TESTFILE}' ]"
}
# load shunit2
. /path/to/shUnit/shunit2-2.1.5/src/shell/shunit2

结果

Ran 1 test.

OK

如果文件不存在,“OK”将替换为“FAILED”。

关于shell - 寻找自动化测试 kshell 应用程序的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1058737/

相关文章:

regex - 如何在grep中进行非贪婪匹配?

linux - 如何从文件中获取特定字符串并将其存储在 shell 脚本中的新文件中?

linux - 如何使用 awk 增加值

linux - 使用 awk 追加到文件的特定行,保留不匹配的行不变

linux - 如何根据 linux 中的相邻列值获取列值?

linux - 如何使用 ssh -t 命令,其中包含带引号的 grep

azure - 如何有条件地通过内部子网路由 AKS 流量?

java - 如何采用 TDD 并确保遵守?

bash - awk '{printf "%d ", 49420877107}' 打印错误的数字 2147483647

tdd - 我该如何决定要手动测试哪些内容,以及要信任自动测试的内容?