kyuaコマンドとKyuafile
Kyuaはkyuaコマンドで制御する。テストの実行、テストの個別実行、テストケースの出力、報告書の作成といった操作をkyuaコマンドから実行する。このコマンドはKyuafileというファイルの内容に従って処理を行う。makeコマンドに対するMakefileがあるように、kyuaコマンドにKyuafileがあるといった感じだ。
今回は、次のようなKyuafileを用意した。
Kyuafile
syntax(2)
test_suite("tests")
atf_test_program{name="test.atf-sh", }
書き方はいろいろあるが、ここではシンプルにtest.atf-shというファイルにテストコードを書くように指定した。test.atf-shは次のように書いてある。
test.atf-sh
#!/usr/bin/env atf-sh
atf_test_case normal
normal_head() {
atf_set "descr" "Normal data handling test"
}
normal_body() {
atf_check -s ignore \
-o file:$(atf_get_srcdir)/../data/zip.tsv \
-x "$(atf_get_srcdir)/../csv2tsv.exe " \
"$(atf_get_srcdir)/../data/zip.csv"
}
atf_test_case empty
empty_head() {
atf_set "descr" "Emtpy file handling test"
}
empty_body() {
atf_check -s ignore \
-o file:$(atf_get_srcdir)/../data/empty.tsv \
-x "$(atf_get_srcdir)/../csv2tsv.exe " \
"$(atf_get_srcdir)/../data/empty.csv"
}
atf_test_case doublequotes
doublequotes_head() {
atf_set "descr" "Double quotation handling test"
}
doublequotes_body() {
atf_check -s ignore \
-o file:$(atf_get_srcdir)/../data/doublequotes.tsv \
-x "$(atf_get_srcdir)/../csv2tsv.exe " \
"$(atf_get_srcdir)/../data/doublequotes.csv"
}
atf_test_case spaces
spaces_head() {
atf_set "descr" "Spaces handling test"
}
spaces_body() {
atf_check -s ignore \
-o file:$(atf_get_srcdir)/../data/spaces.tsv \
-x "$(atf_get_srcdir)/../csv2tsv.exe " \
"$(atf_get_srcdir)/../data/spaces.csv"
}
atf_init_test_cases()
{
atf_add_test_case normal
atf_add_test_case empty
atf_add_test_case doublequotes
atf_add_test_case spaces
}
前回までは、PowerShellでテスト用のスクリプトファイルを4つ用意した。このスクリプトを実行するメタスクリプトをさらに1つ用意し、合計で5つのPowerShellスクリプトを書いたわけだが、これを1つにまとめたようなファイルが上記のtest.atf-shだ。
test.atf-shの書き方にはルールがあるので、基本的にはそのルールに従って処理を記述している。ここまで準備したら、次のようにkyuaコマンドを実行するとテストコードが実行される。
テストコードの実行
kyua test