1 \input texinfo @c -*-texinfo-*-
4 @documentlanguage ja_JP
6 @setfilename autotest_mk.info
7 @documentencoding UTF-8
8 @settitle autotest_mk - Linux上のCASL II処理系
9 @firstparagraphindent none
14 Copyright @copyright{} 2010 j8takagi
21 * Autotest.mk: (autotest_mk).
26 @subtitle GNU Makeを利用したテスト自動化ツール
32 @node Top, About, (dir), (dir)
42 --- The Detailed Node Listing ---
60 @node About, Install, Top, Top
61 @chapter Autotest.mkの概要
63 Autotest.mkは、GNU Makeを利用したテスト自動化ツールです。何回か@kbd{make}コマンドを実行し、プログラムのテスト結果を表す実行ファイルを作成すれば、テストの準備は完了です。あとは@kbd{make}コマンドを1回実行すれば、いつでもテストを実行できます。テストの実行結果は、ログに出力されます。
65 Autotest.mkでは、次の3つの概念を使います。
79 Autotest.mkは、LinuxやMac OS Xなどで動作します。現在動作を確認しているのは、次のディストリビューションです。
90 Mac OS Xでは、@uref{http://www.gnu.org/software/findutils/, GNU Findutils}をインストールしてください。
92 @node Install, Tutorial, About, Top
93 @chapter Autotest.mkのインストール
101 Autotest.mkをインストールするには、次の作業をします。
106 Autotest.mkファイルのダウンロード
115 @node Download, Verify, Install, Install
118 @uref{http://github.com/j8takagi/autotest_mk, GitHub/j8takagi/autotest_mk}の@uref{http://github.com/j8takagi/autotest_mk/downloads, ダウンロードページ}から最新版のtgzファイルをダウンロードします。
120 続けて、対応する@file{md5sum}フィルをダウンロードします。
122 @node Verify, Expand, Download, Install
125 ダウンロードが完了したら、@kbd{md5sum}と@kbd{diff}で正しくファイルがダウンロードができているかを検証します。
128 $ @kbd{md5sum autotest_mk.tar.gz | diff -s autotest_mk.tar.gz.md5sum -}
129 Files autotest_mk.tar.gz.md5sum and - are identical
132 @node Expand, , Verify, Install
135 @file{autotest_mk}ファイルをダウンロードしたら、次のコマンドで展開します。
138 $ @kbd{tar xvzf autotest_mk.tar.gz}
141 展開したら、Autotest.mkは使える状態です。多くのプログラムをインストールするときに必要なコンパイルやビルド、システムディレクトリーへのインストール(@kbd{./configure}や@kbd{make}、@kbd{make install})は必要ありません。
143 @node Tutorial, Manual, Install, Top
144 @chapter Autotest.mkチュートリアル
146 Autotest.mkを使ったテストの手順は、次のとおりです。
165 ここでは、次のような三角形判定プログラムをテストする手順を取り上げます。
168 プログラムtriangleは3つの引数をとり、それぞれ三角形の3辺の長さをあらわすものとする。プログラムは、三角形が不等辺三角形の場合は`isosceles triangle'、二等辺三角形の場合は`isosceles triangle'、正三角形は`equilateral triangle'を印字する。
181 @node Preapre, Create Group, Tutorial, Tutorial
182 @section サンプルプログラムの準備
184 まず、Autotest.mkのパッケージに含まれている@file{sample/calc}を任意のフォルダーへコピーします。
187 $ @kbd{cd ~/autotest.mk}
188 $ @kbd{cp -r ~/sample/calc ~/calc}
192 @section グループディレクトリーの作成
194 テンプレートディレクトリーで、@kbd{make}を実行します。このとき、テストグループのディレクトリーを変数@code{GROUPDIR}で指定します。
199 $ @kbd{cd ~/autotest.mk/template}
200 $ @kbd{make GROUPDIR=~/calc/calc_test}
203 次のコマンドでグループディレクトリーに移動し、その中を確認します。
205 テストを実行するためのMakefileが作成されます。
208 $ @kbd{cd ~/autotest.mk/template}
209 $ @kbd{make GROUPDIR=~/calc/calc_test}
212 @node Create Test, Edit cmd, Create Group, Tutorial
213 @section テストディレクトリーの作成
215 @node Edit cmd, Test Set, Create Test, Tutorial
216 @section テスト用コマンドファイルの作成
218 @node Test Set, Test Execute, Edit cmd, Tutorial
219 @section テスト想定結果の作成と検証
221 @node Test Execute, , Test Set, Tutorial
222 @section テストの実行とログの確認
224 @node Manual, , Tutorial, Top
225 @chapter Autotest.mkマニュアル
233 @node Template Dir, Group Dir, Manual, Manual
234 @section テンプレートディレクトリー
236 テンプレートディレクトリーは、Autotest.mkをインストールするときに展開により作成された@code{template}ディレクトリーです。このディレクトリーに移動すると次の操作ができます。
243 @node make group, Template Files, Template Dir, Template Dir
244 @subsection @kbd{make}または@kbd{make group} グループの作成
246 変数@code{GROUPDIR}で指定されたディレクトリーをテストグループディレクトリーとして作成し、必要な次のファイルをコピーします。
248 @node Template Files, , make group, Template Dir
249 @subsection テンプレートのファイル
251 @node Group Dir, Test Dir, Template Dir, Manual
258 * make check at group::
260 * make clean at group::
261 * make time at group::
262 * make cleantime at group::
266 @node make create, Rename, Group Dir, Group Dir
267 @subsection @kbd{make create} テストの作成
269 @node Rename, Delete, make create, Group Dir
272 @node Delete, make check at group, Rename, Group Dir
275 @node make check at group, make checkall, Delete, Group Dir
276 @subsection @kbd{make}または@kbd{make check} グループ内にあるすべてのテストの実行
278 @node make checkall, make clean at group, make check at group, Group Dir
279 @subsection @kbd{make checkall} グループ内にあるすべてのテストの実行、計時
281 @node make clean at group, make time at group, make checkall, Group Dir
282 @subsection @kbd{make clean} グループ内にあるすべてのテストで、実行結果をクリア
284 @node make time at group, make cleantime at group, make clean at group, Group Dir
285 @subsection @kbd{make time} グループ内にあるすべてのテストを計時
287 @node make cleantime at group, Group Files, make time at group, Group Dir
288 @subsection @kbd{make cleantime} グループ内にあるすべてのテストで、計時結果をクリア
290 @node Group Files, , make cleantime at group, Group Dir
291 @subsection グループのファイル
293 @node Test Dir, , Group Dir, Manual
299 * make check at test::
300 * make time at test::
301 * make cleantime at test::
302 * make clean at test::
303 * make cleanall at test::
307 @node make set, make reset, Test Dir, Test Dir
308 @subsection @kbd{make set} テスト想定の作成
310 @node make reset, make check at test, make set, Test Dir
311 @subsection @kbd{make set} テスト想定の再作成
313 @node make check at test, make time at test, make reset, Test Dir
314 @subsection @kbd{make}または@kbd{make check} テストの実行
316 @node make time at test, make cleantime at test, make check at test, Test Dir
317 @subsection @kbd{make time} テストの計時
319 @node make cleantime at test, make clean at test, make time at test, Test Dir
320 @subsection @kbd{make cleantime} テスト計時結果のクリア
322 @node make clean at test, make cleanall at test, make cleantime at test, Test Dir
323 @subsection @kbd{make cleantime} テスト結果のクリア
325 @node make cleanall at test, Test Files, make clean at test, Test Dir
326 @subsection @kbd{make cleanall} テストの想定と結果をクリア
328 @node Test Files,, make cleanall at test, Test Dir