正在寻找自动化测试kshell应用程序的方法
我继承了一个shell脚本应用程序,它是kshell脚本、awk和java程序的组合。我已经为java片段编写了JUnit测试 对于kshell脚本和awk程序,是否有一种很好的方法来执行类似的操作 我已经考虑过使用JUnit和System.exec()来调用脚本,但似乎应该有更好的方法。我已经找到并将尝试这样做 更新试用结果 它按预期工作。脚本文件是用定义的测试函数编写的,然后调用它 例如:正在寻找自动化测试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
#!/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有很多文档,它们仍然很有用这不是你的问题的直接答案,但是你可以考虑使用一个简单的Mag文件来运行不同参数的BASH脚本。 例如,写下如下内容:
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
。我怎样才能知道它安装在哪里?无论是哪一方或是哪一方都找不到它。