正在寻找自动化测试kshell应用程序的方法

正在寻找自动化测试kshell应用程序的方法,shell,awk,automated-tests,Shell,Awk,Automated Tests,我继承了一个shell脚本应用程序,它是kshell脚本、awk和java程序的组合。我已经为java片段编写了JUnit测试 对于kshell脚本和awk程序,是否有一种很好的方法来执行类似的操作 我已经考虑过使用JUnit和System.exec()来调用脚本,但似乎应该有更好的方法。我已经找到并将尝试这样做 更新试用结果 它按预期工作。脚本文件是用定义的测试函数编写的,然后调用它 例如: #!/bin/sh testFileCreated() { TESTFILE=/tmp/testf

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

对于kshell脚本和awk程序,是否有一种很好的方法来执行类似的操作

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

我已经找到并将尝试这样做

更新试用结果

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

例如:

#!/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

如果文件不存在,“确定”将被替换为“失败”。

您可能需要尝试。它是为自动化交互式程序而设计的。当然,Expect是在TCL之上编写的,TCL是一种令人讨厌的脚本语言。因此,Python()和其他语言都有接口,它们对程序员更加友好。但是TCL/Expect有很多文档,它们仍然很有用 例如,写下如下内容:

cat >Makefile

test_all: test1 test2 test3

test1:
    script1 -parameter1 -parameter2

test2: $(addprefix test2file_, $TESTFILES)
test2file_%:
    script2 -filename $*

test3:
    grep|awk|gawk|sed....

通过调用“make test_all”,您将自动执行所有脚本,语法也不难学习-您只需定义一个规则名称(test1,test_all…)以及与之相关的命令。

I使用
yum
安装了
shunit2
。我怎样才能知道它安装在哪里?无论是哪一方或是哪一方都找不到它。