kshellスクリプト、awk、javaプログラムの組み合わせであるシェルスクリプトアプリケーションを継承しました。私はJavaの部分のJUnitテストを書いています。kshell appのテストを自動化する方法を探しています
kshellスクリプトとawkプログラムで同様のことをする良い方法はありますか?
私はJUnitとSystem.exec()を使ってスクリプトを呼び出すことを検討しましたが、より良い方法があるはずです。
kshellスクリプト、awk、javaプログラムの組み合わせであるシェルスクリプトアプリケーションを継承しました。私はJavaの部分のJUnitテストを書いています。kshell appのテストを自動化する方法を探しています
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' で置き換えられます。
これはあなたの質問に対する直接的な答えではありませんが、単純なMakefileを使用してさまざまなパラメータでbashスクリプトを実行することを検討することができます。このような何か書き例えば
、:を呼び出すことで
cat >Makefile
test_all: test1 test2 test3
test1:
script1 -parameter1 -parameter2
test2: $(addprefix test2file_, $TESTFILES)
test2file_%:
script2 -filename $*
test3:
grep|awk|gawk|sed....
「を作るtest_all」あなたは、自動的にすべてのスクリプトを実行し、構文が学ぶことはそれほど難しいことではない - あなただけのルールを定義する必要がありますname(test1、test_all ...)とそれに関連するコマンド。
'shunit2'を' yum'でインストールしました。どのようにインストールされているのかわかりますか?どちらもそれを見つけることができない。 – Leonid