</head>
<body>
<h1 class="settitle">Autotest.mk - GNU Makeを利用したテスト自動化ツール</h1>
+<div class="node">
<a name="Top"></a>
+<p><hr>
+Next: <a rel="next" accesskey="n" href="#About">About</a>,
+Previous: <a rel="previous" accesskey="p" href="#dir">(dir)</a>,
+Up: <a rel="up" accesskey="u" href="#dir">(dir)</a>
+
+</div>
+
+<ul class="menu">
+<li><a accesskey="1" href="#About">About</a>: Autotest.mk 概要
+<li><a accesskey="2" href="#Install">Install</a>: Autotest.mk インストール
+<li><a accesskey="3" href="#Tutorial">Tutorial</a>: Autotest.mk チュートリアル
+<li><a accesskey="4" href="#Template-dir">Template dir</a>: テンプレートディレクトリー マニュアル
+<li><a accesskey="5" href="#Group-dir">Group dir</a>: グループディレクトリー マニュアル
+<li><a accesskey="6" href="#Test-dir">Test dir</a>: テストディレクトリー マニュアル
+
+ </ul>
<div class="contents">
<h2>Table of Contents</h2>
<ul>
-<li><a name="toc_About" href="#About">1 Autotest.mkの概要</a>
+<li><a name="toc_About" href="#About">1 Autotest.mk 概要</a>
<ul>
<li><a href="#About">要件</a>
</li></ul>
-<li><a name="toc_Install" href="#Install">2 Autotest.mkのインストール</a>
+<li><a name="toc_Install" href="#Install">2 Autotest.mk インストール</a>
<ul>
<li><a href="#Download">2.1 Autotest.mkファイルのダウンロード</a>
<li><a href="#Verify">2.2 Autotest.mkファイルの検証</a>
<li><a href="#Expand">2.3 ファイルの展開</a>
</li></ul>
-<li><a name="toc_Tutorial" href="#Tutorial">3 Autotest.mkチュートリアル</a>
+<li><a name="toc_Tutorial" href="#Tutorial">3 Autotest.mk チュートリアル - 三角形判定プログラムのテスト</a>
<ul>
+<li><a href="#Tutorial-About">概要</a>
<li><a href="#Prepare">準備</a>
<ul>
<li><a href="#Prepare">作業用フォルダの作成</a>
<li><a href="#Check-Group-Log">バグを含む三角形判定プログラムの場合</a>
</li></ul>
</li></ul>
-<li><a name="toc_Manual" href="#Manual">4 Autotest.mkマニュアル</a>
+<li><a name="toc_Template-dir" href="#Template-dir">4 テンプレートディレクトリー マニュアル</a>
<ul>
-<li><a href="#Template-Dir">4.1 テンプレートディレクトリー</a>
-<ul>
-<li><a href="#make-group">4.1.1 <kbd>make</kbd>または<kbd>make group</kbd> - グループの作成</a>
+<li><a href="#make-group">4.1 <kbd>make</kbd>または<kbd>make group</kbd> - グループディレクトリーの作成</a>
<ul>
+<li><a href="#make-group">4.1.1 変数</a>
<li><a href="#make-group">使用例</a>
</li></ul>
-<li><a href="#Template-Files">4.1.2 テンプレートのファイル</a>
+<li><a href="#Template-Files">4.2 テンプレートのファイル</a>
</li></ul>
-<li><a href="#Group-Dir">4.2 グループディレクトリー</a>
+<li><a name="toc_Group-dir" href="#Group-dir">5 グループディレクトリー マニュアル</a>
<ul>
-<li><a href="#make-create">4.2.1 <kbd>make create</kbd> - テストの作成</a>
+<li><a href="#make-create">5.1 <kbd>make create</kbd> - テストの作成</a>
<ul>
<li><a href="#make-create">使用例</a>
</li></ul>
-<li><a href="#Rename">4.2.2 テスト名の変更とコピー</a>
+<li><a href="#Rename-and-Copy">5.2 テスト名の変更とコピー</a>
<ul>
-<li><a href="#Rename">使用例</a>
+<li><a href="#Rename-and-Copy">使用例</a>
</li></ul>
-<li><a href="#Delete">4.2.3 テストの削除</a>
+<li><a href="#Delete">5.3 テストの削除</a>
<ul>
<li><a href="#Delete">使用例</a>
</li></ul>
-<li><a href="#make-check-at-group">4.2.4 <kbd>make</kbd>または<kbd>make check</kbd> - テストグループの実行</a>
+<li><a href="#make-check-at-group">5.4 <kbd>make</kbd>または<kbd>make check</kbd> - テストグループの実行</a>
<ul>
<li><a href="#make-check-at-group">使用例</a>
</li></ul>
-<li><a href="#make-checkall">4.2.5 <kbd>make checkall</kbd> - グループ内にあるすべてのテストの実行、計時</a>
+<li><a href="#make-checkall">5.5 <kbd>make checkall</kbd> - グループ内にあるすべてのテストの実行、計時</a>
<ul>
<li><a href="#make-checkall">使用例</a>
</li></ul>
-<li><a href="#make-clean-at-group">4.2.6 <kbd>make clean</kbd> - グループの実行結果をクリア</a>
+<li><a href="#make-clean-at-group">5.6 <kbd>make clean</kbd> - グループの実行結果をクリア</a>
<ul>
<li><a href="#make-clean-at-group">使用例</a>
</li></ul>
-<li><a href="#make-time-at-group">4.2.7 <kbd>make time</kbd> - グループ内にあるすべてのテストを計時</a>
+<li><a href="#make-time-at-group">5.7 <kbd>make time</kbd> - グループ内にあるすべてのテストを計時</a>
<ul>
<li><a href="#make-time-at-group">使用例</a>
</li></ul>
-<li><a href="#make-cleantime-at-group">4.2.8 <kbd>make cleantime</kbd> - グループの計時結果をクリア</a>
-<li><a href="#Group-Files">4.2.9 グループのファイル</a>
+<li><a href="#make-cleantime-at-group">5.8 <kbd>make cleantime</kbd> - グループの計時結果をクリア</a>
+<li><a href="#Group-Files">5.9 グループディレクトリーのファイル</a>
+</li></ul>
+<li><a name="toc_Test-dir" href="#Test-dir">6 テストディレクトリー マニュアル</a>
+<ul>
+<li><a href="#make-set">6.1 <kbd>make set</kbd> - テスト想定の作成</a>
+<ul>
+<li><a href="#make-set">使用例</a>
+</li></ul>
+<li><a href="#make-reset">6.2 <kbd>make reset</kbd> - テスト想定の作成または更新</a>
+<ul>
+<li><a href="#make-reset">使用例</a>
+</li></ul>
+<li><a href="#make-check-at-test">6.3 <kbd>make</kbd>または<kbd>make check</kbd> - テストの実行</a>
+<ul>
+<li><a href="#make-check-at-test">使用例</a>
+</li></ul>
+<li><a href="#make-clean-at-test">6.4 <kbd>make clean</kbd> - テスト結果のクリア</a>
+<ul>
+<li><a href="#make-clean-at-test">使用例</a>
+</li></ul>
+<li><a href="#make-cleanall-at-test">6.5 <kbd>make cleanall</kbd> - テストの想定と結果をクリア</a>
+<ul>
+<li><a href="#make-cleanall-at-test">使用例</a>
</li></ul>
-<li><a href="#Test-Dir">4.3 テストディレクトリー</a>
+<li><a href="#make-time-at-test">6.6 <kbd>make time</kbd> - テストの計時</a>
<ul>
-<li><a href="#make-set">4.3.1 <kbd>make set</kbd> - テスト想定の作成</a>
-<li><a href="#make-reset">4.3.2 <kbd>make set</kbd> - テスト想定の再作成</a>
-<li><a href="#make-check-at-test">4.3.3 <kbd>make</kbd>または<kbd>make check</kbd> - テストの実行</a>
-<li><a href="#make-time-at-test">4.3.4 <kbd>make time</kbd> - テストの計時</a>
-<li><a href="#make-cleantime-at-test">4.3.5 <kbd>make cleantime</kbd> - テスト計時結果のクリア</a>
-<li><a href="#make-clean-at-test">4.3.6 <kbd>make cleantime</kbd> - テスト結果のクリア</a>
-<li><a href="#make-cleanall-at-test">4.3.7 <kbd>make cleanall</kbd> - テストの想定と結果をクリア</a>
-<li><a href="#Test-Files">4.3.8 テストのファイル</a>
+<li><a href="#make-time-at-test">使用例</a>
</li></ul>
+<li><a href="#make-cleantime-at-test">6.7 <kbd>make cleantime</kbd> - テスト計時結果のクリア</a>
+<li><a href="#Test-Files">6.8 テストディレクトリーのファイル</a>
</li></ul>
</li></ul>
</div>
-<p><a name="About"></a>
+<div class="node">
+<a name="About"></a>
+<p><hr>
+Next: <a rel="next" accesskey="n" href="#Install">Install</a>,
+Previous: <a rel="previous" accesskey="p" href="#Top">Top</a>,
+Up: <a rel="up" accesskey="u" href="#Top">Top</a>
-<h2 class="chapter">1 Autotest.mkの概要</h2>
+</div>
+
+<h2 class="chapter">1 Autotest.mk 概要</h2>
<p>Autotest.mkは、GNU Makeを利用したテスト自動化ツールです。何回か<kbd>make</kbd>コマンドを実行し、コマンドファイルとテスト結果の想定をあらわすファイルを作成すれば、テストの準備は完了です。あとは<kbd>make</kbd>コマンドを1回実行すれば、テストを実行できます。テストが実行されると、詳細なログが出力されます。
- <p>Autotest.mkでは、次の3つの概念を使います。
+ <p>Autotest.mkでは、次の3つのディレクトリーを使います。
<dl>
-<dt><samp><span class="option">テンプレート</span></samp><dd>テストグループとテストのテンプレートです。
+<dt><samp><span class="option">テンプレートディレクトリー</span></samp><dd>テストグループとテストのテンプレートとなるディレクトリー
- <br><dt><samp><span class="option">テストグループ</span></samp><dd>複数のテストを含むグループです。
+ <br><dt><samp><span class="option">テストグループディレクトリー</span></samp><dd>1つまたは複数のテストを含むディレクトリー
- <br><dt><samp><span class="option">テスト</span></samp><dd>テスト個々の内容と結果を表します。
+ <br><dt><samp><span class="option">テストディレクトリー</span></samp><dd>テスト実行のためのファイルと、実行結果をあらわすファイルを含むディレクトリー
</dl>
<h3 class="unnumberedsec">要件</h3>
<p>Mac OS Xでは、<a href="http://www.gnu.org/software/findutils/">GNU Findutils</a>をインストールしてください。
-<p><a name="Install"></a>
+<div class="node">
+<a name="Install"></a>
+<p><hr>
+Next: <a rel="next" accesskey="n" href="#Tutorial">Tutorial</a>,
+Previous: <a rel="previous" accesskey="p" href="#About">About</a>,
+Up: <a rel="up" accesskey="u" href="#Top">Top</a>
+
+</div>
+
+<h2 class="chapter">2 Autotest.mk インストール</h2>
-<h2 class="chapter">2 Autotest.mkのインストール</h2>
+<ul class="menu">
+<li><a accesskey="1" href="#Download">Download</a>: ダウンロード
+<li><a accesskey="2" href="#Verify">Verify</a>: Autotest.mkファイルの検証
+<li><a accesskey="3" href="#Expand">Expand</a>: ファイルの展開
+</ul>
<p>Autotest.mkをインストールするには、次の作業をします。
<li>Autotest.mkファイルの展開
</ol>
-<p><a name="Download"></a>
+<div class="node">
+<a name="Download"></a>
+<p><hr>
+Next: <a rel="next" accesskey="n" href="#Verify">Verify</a>,
+Previous: <a rel="previous" accesskey="p" href="#Install">Install</a>,
+Up: <a rel="up" accesskey="u" href="#Install">Install</a>
+
+</div>
<h3 class="section">2.1 Autotest.mkファイルのダウンロード</h3>
<ul>
<li><a href="autotest_mk.tar.gz">autotest_mk.tar.gz</a> - Autotest.mkのファイル一式を<samp><span class="file">tar.gz</span></samp>形式で圧縮したもの
- <li><a href="autotest_mk.tar.gz.md5sum">autotest_mk.tar.gz.md5sum</a> - <samp><span class="file">autotest_mk.tar.gz</span></samp>のMD5ハッシュ値
+ <li><a href="autotest_mk.tar.gz.md5sum">autotest_mk.tar.gz.md5sum</a> - <samp><span class="file">autotest_mk.tar.gz</span></samp>のMD5ハッシュ値。<kbd>openssl</kbd>で作成
</ul>
- <p>または、<a href="http://github.com/j8takagi/Autotest.mk/downloads">githubのダウンロードページ</a>からダウンロード、
+ <p>または、<a href="http://github.com/j8takagi/Autotest.mk/downloads/">githubのダウンロードページ</a>からダウンロードします。
-<p><a name="Verify"></a>
+<div class="node">
+<a name="Verify"></a>
+<p><hr>
+Next: <a rel="next" accesskey="n" href="#Expand">Expand</a>,
+Previous: <a rel="previous" accesskey="p" href="#Download">Download</a>,
+Up: <a rel="up" accesskey="u" href="#Install">Install</a>
+
+</div>
<h3 class="section">2.2 Autotest.mkファイルの検証</h3>
-<p>ダウンロードが完了したら、<kbd>md5sum</kbd>と<kbd>diff</kbd>で正しくファイルがダウンロードができているかを検証します。
+<p>ダウンロードが完了したら、<kbd>openssl</kbd>と<kbd>diff</kbd>で正しくファイルがダウンロードができているかを検証します。
-<pre class="example"> $ <kbd>openssl md5sum autotest_mk.tar.gz | diff -s autotest_mk.tar.gz.md5sum -</kbd>
+<pre class="example"> $ <kbd>openssl md5 autotest_mk.tar.gz | diff -s autotest_mk.tar.gz.md5sum -</kbd>
Files autotest_mk.tar.gz.md5sum and - are identical
</pre>
- <p><a name="Expand"></a>
+ <div class="node">
+<a name="Expand"></a>
+<p><hr>
+Previous: <a rel="previous" accesskey="p" href="#Verify">Verify</a>,
+Up: <a rel="up" accesskey="u" href="#Install">Install</a>
+
+</div>
<h3 class="section">2.3 ファイルの展開</h3>
</pre>
<p>展開したら、Autotest.mkは使えるようになります。多くのプログラムをインストールするときに必要なコンパイルやビルド、システムディレクトリーへのインストール(<kbd>./configure</kbd>や<kbd>make</kbd>、<kbd>make install</kbd>)は必要ありません。
-<p><a name="Tutorial"></a>
-
-<h2 class="chapter">3 Autotest.mkチュートリアル</h2>
-
-<p>Autotest.mkを使ったテストの手順は、次のとおりです。
-
- <ol type=1 start=1>
-<li>グループディレクトリーの作成
-
- <li>テストディレクトリーの作成
+<div class="node">
+<a name="Tutorial"></a>
+<p><hr>
+Next: <a rel="next" accesskey="n" href="#Template-dir">Template dir</a>,
+Previous: <a rel="previous" accesskey="p" href="#Install">Install</a>,
+Up: <a rel="up" accesskey="u" href="#Top">Top</a>
- <li>テスト説明ファイルの作成
-
- <li>テストコマンドファイルの作成
+</div>
- <li>テスト想定ファイルの作成
+<h2 class="chapter">3 Autotest.mk チュートリアル - 三角形判定プログラムのテスト</h2>
+
+<ul class="menu">
+<li><a accesskey="1" href="#Tutorial-About">Tutorial About</a>: 概要
+<li><a accesskey="2" href="#Prepare">Prepare</a>: 準備
+<li><a accesskey="3" href="#Create-Group">Create Group</a>: グループディレクトリーの作成
+<li><a accesskey="4" href="#Create-Test">Create Test</a>: テストディレクトリーの作成
+<li><a accesskey="5" href="#Edit-desc">Edit desc</a>: テスト説明ファイルの作成
+<li><a accesskey="6" href="#Edit-cmd">Edit cmd</a>: テストコマンドファイルの作成
+<li><a accesskey="7" href="#Test-Setting">Test Setting</a>: テスト想定ファイルの作成
+<li><a accesskey="8" href="#Test-Execute">Test Execute</a>: テストの実行
+<li><a accesskey="9" href="#Check-Test-Log">Check Test Log</a>: テストログファイルの確認
+<li><a href="#Group-Execute">Group Execute</a>: テストグループの実行
+<li><a href="#Check-Group-Log">Check Group Log</a>: テストグループログファイルの確認
+</ul>
- <li>テストの実行
+<div class="node">
+<a name="Tutorial-About"></a>
+<p><hr>
+Next: <a rel="next" accesskey="n" href="#Prepare">Prepare</a>,
+Previous: <a rel="previous" accesskey="p" href="#Tutorial">Tutorial</a>,
+Up: <a rel="up" accesskey="u" href="#Tutorial">Tutorial</a>
- <li>テストログファイルの確認
+</div>
- <li>テストグループの実行
+<h3 class="unnumberedsec">概要</h3>
- <li>テストグループログファイルの確認
- </ol>
-
- <p>ここでは、Glenford J Myers『ソフトウェア・テストの技法』(近代科学社、1980)の記載を元にした、次の仕様の三角形判定プログラムをテストする手順を取り上げます<a rel="footnote" href="#fn-1" name="fnd-1"><sup>1</sup></a>。
+<p>ここでは、Glenford J Myers『ソフトウェア・テストの技法』(近代科学社、1980)の記載を元にした、次の仕様の三角形判定プログラムをテストする手順を取り上げます<a rel="footnote" href="#fn-1" name="fnd-1"><sup>1</sup></a>。
<blockquote>
-プログラムtriangleは3つの引数をとる。この3つの値は、それぞれ三角形の3辺の長さをあらわすものとする。プログラムは、三角形が不等辺三角形の場合は`scalene triangle'、二等辺三角形の場合は`isosceles triangle'、正三角形の場合は`equilateral triangle'を印字する。
+プログラムtriangleは、整数をあらわす3つの引数をとる。この3つの値は、それぞれ三角形の3辺の長さをあらわすものとする。プログラムは、三角形が不等辺三角形の場合は`scalene triangle'、二等辺三角形の場合は`isosceles triangle'、正三角形の場合は`equilateral triangle'を印字する。
</blockquote>
<p>この三角形判定プログラムの動作を検証するには、次のテスト・ケースが必要です<a rel="footnote" href="#fn-2" name="fnd-2"><sup>2</sup></a>。
<li>有効な二等辺三角形をあらわすテスト・ケース
- <li>有効な二等辺三角形で2つの等辺を含む3種類の組合せすべてをためすことができる3つのテストケース
+ <li>æ\9c\89å\8a¹ã\81ªäº\8cç\89辺ä¸\89è§\92å½¢ã\81§2ã\81¤ã\81®ç\89辺ã\82\92å\90«ã\82\803種é¡\9eã\81®çµ\84å\90\88ã\81\9bã\81\99ã\81¹ã\81¦ã\82\92ã\81\9fã\82\81ã\81\99ã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8b3ã\81¤ã\81®ã\83\86ã\82¹ã\83\88ã\83»ã\82±ã\83¼ã\82¹
<li>1つの辺がゼロの値をもつテスト・ケース
<p>三角形判定プログラムは、サンプルとして用意されているものを<a href="#Prepare">準備</a>するか、または自作してください。
-<p><a name="Prepare"></a>
+ <p>準備ができたら、Autotest.mkを使った次の手順でテストを実行できます。
+
+ <ol type=1 start=1>
+<li>グループディレクトリーの作成
+
+ <li>テストディレクトリーの作成
+
+ <li>テスト説明ファイルの作成
+
+ <li>テストコマンドファイルの作成
+
+ <li>テスト想定ファイルの作成
+
+ <li>テストの実行
+
+ <li>テストログファイルの確認
+
+ <li>テストグループの実行
+
+ <li>テストグループログファイルの確認
+ </ol>
+
+<div class="node">
+<a name="Prepare"></a>
+<p><hr>
+Next: <a rel="next" accesskey="n" href="#Create-Group">Create Group</a>,
+Previous: <a rel="previous" accesskey="p" href="#Tutorial-About">Tutorial About</a>,
+Up: <a rel="up" accesskey="u" href="#Tutorial">Tutorial</a>
+
+</div>
<h3 class="unnumberedsec">準備</h3>
</pre>
<p><kbd>./triangle 3 4 5</kbd>で、仕様で`scalene triangle'となるべきところが、`futohen sankakukei'となっています。
-<p><a name="Create-Group"></a>
+<div class="node">
+<a name="Create-Group"></a>
+<p><hr>
+Next: <a rel="next" accesskey="n" href="#Create-Test">Create Test</a>,
+Previous: <a rel="previous" accesskey="p" href="#Prepare">Prepare</a>,
+Up: <a rel="up" accesskey="u" href="#Tutorial">Tutorial</a>
+
+</div>
<h3 class="section">3.1 グループディレクトリーの作成</h3>
<pre class="example"> $ <kbd>cd ~/triangle/test</kbd>
$ <kbd>ls</kbd>
- Define.mk Define_group.mk Define_test.mk Makefile Test.mk
+ Define.mk Makefile Test.mk
</pre>
- <p><a name="Create-Test"></a>
+ <div class="node">
+<a name="Create-Test"></a>
+<p><hr>
+Next: <a rel="next" accesskey="n" href="#Edit-desc">Edit desc</a>,
+Previous: <a rel="previous" accesskey="p" href="#Create-Group">Create Group</a>,
+Up: <a rel="up" accesskey="u" href="#Tutorial">Tutorial</a>
+
+</div>
<h3 class="section">3.2 テストディレクトリーの作成</h3>
$ <kbd>ls</kbd>
Makefile
</pre>
- <p><a name="Edit-desc"></a>
+ <div class="node">
+<a name="Edit-desc"></a>
+<p><hr>
+Next: <a rel="next" accesskey="n" href="#Edit-cmd">Edit cmd</a>,
+Previous: <a rel="previous" accesskey="p" href="#Create-Test">Create Test</a>,
+Up: <a rel="up" accesskey="u" href="#Tutorial">Tutorial</a>
+
+</div>
<h3 class="section">3.3 テスト説明ファイルの作成</h3>
<pre class="example"> <kbd>有効な不等辺三角形をあらわすテスト・ケース</kbd>
</pre>
- <p><a name="Edit-cmd"></a>
+ <div class="node">
+<a name="Edit-cmd"></a>
+<p><hr>
+Next: <a rel="next" accesskey="n" href="#Test-Setting">Test Setting</a>,
+Previous: <a rel="previous" accesskey="p" href="#Edit-desc">Edit desc</a>,
+Up: <a rel="up" accesskey="u" href="#Tutorial">Tutorial</a>
+
+</div>
<h3 class="section">3.4 テストコマンドファイルの作成</h3>
-<p>テストコマンドファイル<samp><span class="file">cmd</span></samp>は、テストの時に実行されるコマンドをあらわします。
+<p>テストコマンドファイル<samp><span class="file">cmd</span></samp>は、テスト時に実行されるコマンドをあらわします。
このコマンドにより、標準出力とエラー出力にテストの結果が出力されるようにします。
<p>ここでは、<samp><span class="file">cmd</span></samp>をテキストエディターを使って次の内容で作成します。
<pre class="example"> <kbd>../../triangle 3 4 5</kbd>
</pre>
- <p><a name="Test-Setting"></a>
+ <div class="node">
+<a name="Test-Setting"></a>
+<p><hr>
+Next: <a rel="next" accesskey="n" href="#Test-Execute">Test Execute</a>,
+Previous: <a rel="previous" accesskey="p" href="#Edit-cmd">Edit cmd</a>,
+Up: <a rel="up" accesskey="u" href="#Tutorial">Tutorial</a>
+
+</div>
<h3 class="section">3.5 テスト想定ファイルの作成</h3>
<pre class="example"> $ <kbd>make reset</kbd>
scalene triangle
</pre>
- <p><a name="Test-Execute"></a>
+ <div class="node">
+<a name="Test-Execute"></a>
+<p><hr>
+Next: <a rel="next" accesskey="n" href="#Check-Test-Log">Check Test Log</a>,
+Previous: <a rel="previous" accesskey="p" href="#Test-Setting">Test Setting</a>,
+Up: <a rel="up" accesskey="u" href="#Tutorial">Tutorial</a>
+
+</div>
<h3 class="section">3.6 テストの実行</h3>
<p>バグを含む三角形判定プログラムでテストを実行すると、次のように表示されます。
<pre class="example"> $ <kbd>make</kbd>
- make: [diff.txt] Error 1 (ignored)
+ make: [diff.log] Error 1 (ignored)
有効な不等辺三角形をあらわすテスト・ケース
01_scalene: Test Failure 2011-01-10 20:25:16
Detail in /home/foo/triangle/test/01_scalene/detail.log
</pre>
- <p><a name="Check-Test-Log"></a>
+ <div class="node">
+<a name="Check-Test-Log"></a>
+<p><hr>
+Next: <a rel="next" accesskey="n" href="#Group-Execute">Group Execute</a>,
+Previous: <a rel="previous" accesskey="p" href="#Test-Execute">Test Execute</a>,
+Up: <a rel="up" accesskey="u" href="#Tutorial">Tutorial</a>
+
+</div>
<h3 class="section">3.7 テストログファイルの確認</h3>
-<p>テストを実行して作成されたファイルを確認します。<samp><span class="file">1.txt</span></samp>、<samp><span class="file">test.log</span></samp>、<samp><span class="file">detail.log</span></samp>が作成されています。
+<p>テストを実行して作成されたファイルを確認します。<samp><span class="file">1.txt</span></samp>、<samp><span class="file">summary.log</span></samp>、<samp><span class="file">detail.log</span></samp>が作成されています。
<pre class="example"> $ ls
0.txt 1.txt Makefile cmd desc.txt detail.log summary.log
</pre>
<dl>
<dt><samp><span class="file">1.txt</span></samp><dd>テスト結果をあらわします。エラー発生時は、標準出力のあとにエラー出力が続きます
- <br><dt><samp><span class="file">err.txt</span></samp><dd>エラー発生時に、エラーが出力されます。エラーが発生しない場合は作成されません
+ <br><dt><samp><span class="file">err.log</span></samp><dd>エラー発生時に、エラーが出力されます。エラーが発生しない場合は作成されません
- <br><dt><samp><span class="file">diff.txt</span></samp><dd>テスト想定ファイル<samp><span class="file">0.txt</span></samp>とテスト結果ファイル<samp><span class="file">1.txt</span></samp>の差分をあらわします。想定と結果が同一の場合は、作成されません
+ <br><dt><samp><span class="file">diff.log</span></samp><dd>テスト想定ファイル<samp><span class="file">0.txt</span></samp>とテスト結果ファイル<samp><span class="file">1.txt</span></samp>の差分をあらわします。想定と結果が同一の場合は、作成されません
<br><dt><samp><span class="file">summary.log</span></samp><dd>テストの実行結果を表します。テスト実行時に表示される項目です。
<p><samp><span class="file">detail.log</span></samp>は、次のようになります。
-<pre class="example"> == test.log ==
+<pre class="example"> == summary.log ==
----------------------------------------------------------------------
有効な不等辺三角形をあらわすテスト・ケース
01_scalene: Test Success 2011-01-10 10:09:55
</pre>
<h4 class="unnumberedsubsec">バグを含む三角形判定プログラムの場合</h4>
-<p>バグを含む三角形判定プログラムを準備してテストを実行した場合、<samp><span class="file">1.txt</span></samp>、<samp><span class="file">test.log</span></samp>、<samp><span class="file">detail.log</span></samp>のほかに、テスト想定とテスト結果が異なるため<kbd>diff.txt</kbd>が作成されます。
+<p>バグを含む三角形判定プログラムを準備してテストを実行した場合、<samp><span class="file">1.txt</span></samp>、<samp><span class="file">summary.log</span></samp>、<samp><span class="file">detail.log</span></samp>のほかに、テスト想定とテスト結果が異なるため<kbd>diff.log</kbd>が作成されます。
<pre class="example"> $ <kbd>ls</kbd>
- 0.txt 1.txt Makefile cmd desc.txt detail.log diff.txt summary.log
+ 0.txt 1.txt Makefile cmd desc.txt detail.log diff.log summary.log
</pre>
<p><samp><span class="file">detail.log</span></samp>は次のようになります。
scalene triangle
----------------------------------------------------------------------
- == diff.txt ==
+ == diff.log ==
----------------------------------------------------------------------
*** 0.txt Mon Jan 10 20:12:14 2011
--- 1.txt Mon Jan 10 20:25:16 2011
$ <kbd>ls</kbd>
0.txt Makefile cmd desc.txt
</pre>
- <p><a name="Group-Execute"></a>
+ <div class="node">
+<a name="Group-Execute"></a>
+<p><hr>
+Next: <a rel="next" accesskey="n" href="#Check-Group-Log">Check Group Log</a>,
+Previous: <a rel="previous" accesskey="p" href="#Check-Test-Log">Check Test Log</a>,
+Up: <a rel="up" accesskey="u" href="#Tutorial">Tutorial</a>
+
+</div>
<h3 class="section">3.8 テストグループの実行</h3>
-<p>2つめ以降のテスト・ケースについても、1つめと同じ手順でテストディレクトリーの作成後、テスト説明ファイルとテストコマンドファイル、テスト想定ファイルを作成します。ここでは、先に作成した<samp><span class="file">01_scalene</span></samp>も含めて、次のようなテストディレクトリーを作成します。
+<p>2つめ以降のテスト・ケースについても、1つめと同じ手順でテストディレクトリーの作成後、テスト説明ファイルとテストコマンドファイル、テスト想定ファイルを作成します。
+
+ <p>ここでは、先に作成した<samp><span class="file">01_scalene</span></samp>も含めて、次のようなディレクトリーとファイルを作成します。こうしたディレクトリーやファイルはAutotest.mkの<samp><span class="file">sample/triangle/test</span></samp>以下にあるので、コピーして作成することもできます。
<ul>
<li>01_scalene
+ <ul>
+<li><samp><span class="file">Makefile</span></samp> <a href="sample_triangle/01_scalene/desc.txt"><samp><span class="file">desc.txt</span></samp></a> <a href="sample_triangle/01_scalene/cmd.txt"><samp><span class="file">cmd</span></samp></a> <a href="sample_triangle/01_scalene/0.txt"><samp><span class="file">0.txt</span></samp></a>
+</ul>
+
<li>02_equilateral
+ <ul>
+<li><samp><span class="file">Makefile</span></samp> <a href="sample_triangle/02_equilateral/desc.txt"><samp><span class="file">desc.txt</span></samp></a> <a href="sample_triangle/02_equilateral/cmd.txt"><samp><span class="file">cmd</span></samp></a> <a href="sample_triangle/02_equilateral/0.txt"><samp><span class="file">0.txt</span></samp></a>
+</ul>
+
<li>03_isosceles
+ <ul>
+<li><samp><span class="file">Makefile</span></samp> <a href="sample_triangle/03_isosceles/desc.txt"><samp><span class="file">desc.txt</span></samp></a> <a href="sample_triangle/03_isosceles/cmd.txt"><samp><span class="file">cmd</span></samp></a> <a href="sample_triangle/03_isosceles/0.txt"><samp><span class="file">0.txt</span></samp></a>
+</ul>
+
<li>04_isosceles_c
+ <ul>
+<li><samp><span class="file">Makefile</span></samp> <a href="sample_triangle/04_isosceles_c/desc.txt"><samp><span class="file">desc.txt</span></samp></a> <a href="sample_triangle/04_isosceles_c/cmd.txt"><samp><span class="file">cmd</span></samp></a> <a href="sample_triangle/04_isosceles_c/0.txt"><samp><span class="file">0.txt</span></samp></a>
+</ul>
+
<li>05_zero
+ <ul>
+<li><samp><span class="file">Makefile</span></samp> <a href="sample_triangle/05_zero/desc.txt"><samp><span class="file">desc.txt</span></samp></a> <a href="sample_triangle/05_zero/cmd.txt"><samp><span class="file">cmd</span></samp></a> <a href="sample_triangle/05_zero/0.txt"><samp><span class="file">0.txt</span></samp></a>
+</ul>
+
<li>06_minus
+ <ul>
+<li><samp><span class="file">Makefile</span></samp> <a href="sample_triangle/06_minus/desc.txt"><samp><span class="file">desc.txt</span></samp></a> <a href="sample_triangle/06_minus/cmd.txt"><samp><span class="file">cmd</span></samp></a> <a href="sample_triangle/06_minus/0.txt"><samp><span class="file">0.txt</span></samp></a>
+</ul>
+
<li>07_line
+ <ul>
+<li><samp><span class="file">Makefile</span></samp> <a href="sample_triangle/01_scalene/desc.txt"><samp><span class="file">desc.txt</span></samp></a> <a href="sample_triangle/01_scalene/cmd.txt"><samp><span class="file">cmd</span></samp></a> <a href="sample_triangle/01_scalene/0.txt"><samp><span class="file">0.txt</span></samp></a>
+</ul>
+
<li>08_lines
+ <ul>
+<li><samp><span class="file">Makefile</span></samp> <a href="sample_triangle/08_lines/desc.txt"><samp><span class="file">desc.txt</span></samp></a> <a href="sample_triangle/08_lines/cmd.txt"><samp><span class="file">cmd</span></samp></a> <a href="sample_triangle/08_lines/0.txt"><samp><span class="file">0.txt</span></samp></a>
+</ul>
+
<li>09_less
+ <ul>
+<li><samp><span class="file">Makefile</span></samp> <a href="sample_triangle/09_less/desc.txt"><samp><span class="file">desc.txt</span></samp></a> <a href="sample_triangle/09_less/cmd.txt"><samp><span class="file">cmd</span></samp></a> <a href="sample_triangle/09_less/0.txt"><samp><span class="file">0.txt</span></samp></a>
+</ul>
+
<li>10_lesses
+ <ul>
+<li><samp><span class="file">Makefile</span></samp> <a href="sample_triangle/10_lesses/desc.txt"><samp><span class="file">desc.txt</span></samp></a> <a href="sample_triangle/10_lesses/cmd.txt"><samp><span class="file">cmd</span></samp></a> <a href="sample_triangle/10_lesses/0.txt"><samp><span class="file">0.txt</span></samp></a>
+</ul>
+
<li>11_zeroall
+ <ul>
+<li><samp><span class="file">Makefile</span></samp> <a href="sample_triangle/11_zeroall/desc.txt"><samp><span class="file">desc.txt</span></samp></a> <a href="sample_triangle/11_zeroall/cmd.txt"><samp><span class="file">cmd</span></samp></a> <a href="sample_triangle/11_zeroall/0.txt"><samp><span class="file">0.txt</span></samp></a>
+</ul>
+
<li>12_notint
+ <ul>
+<li><samp><span class="file">Makefile</span></samp> <a href="sample_triangle/12_notint/desc.txt"><samp><span class="file">desc.txt</span></samp></a> <a href="sample_triangle/12_notint/cmd.txt"><samp><span class="file">cmd</span></samp></a> <a href="sample_triangle/12_notint/0.txt"><samp><span class="file">0.txt</span></samp></a>
+</ul>
+
<li>13_argcnt
+
+ <ul>
+<li><samp><span class="file">Makefile</span></samp> <a href="sample_triangle/13_argcnt/desc.txt"><samp><span class="file">desc.txt</span></samp></a> <a href="sample_triangle/13_argcnt/cmd.txt"><samp><span class="file">cmd</span></samp></a> <a href="sample_triangle/13_argcnt/0.txt"><samp><span class="file">0.txt</span></samp></a>
</ul>
- <p>こうしたディレクトリーやファイルは、Autotest.mkの<samp><span class="file">sample/triangle/test</span></samp>以下にあるので、コピーして作成することもできます。
+ </ul>
<p>テストグループディレクトリーでは、<kbd>make</kbd>または<kbd>make check</kbd>で複数のテストをまとめて実行できます。
<h4 class="unnumberedsubsec">バグを含む三角形判定プログラムの場合</h4>
-<p>バグを含む三角形判定プログラムを準備してテストグループを実行した場合、次のように表示されます。
+<p>バグを含む三角形判定プログラムを準備してテストグループを実行した場合、次のように表示されます。失敗したテストがあることをあらわしています。
<pre class="example"> $ <kbd>cd ~/triangle/test</kbd>
$ <kbd>make</kbd>
test: 11 / 13 tests passed. Detail in /home/foo/triangle/test/TEST.log
</pre>
- <p><a name="Check-Group-Log"></a>
+ <div class="node">
+<a name="Check-Group-Log"></a>
+<p><hr>
+Previous: <a rel="previous" accesskey="p" href="#Group-Execute">Group Execute</a>,
+Up: <a rel="up" accesskey="u" href="#Tutorial">Tutorial</a>
+
+</div>
<h3 class="section">3.9 テストグループログファイルの確認</h3>
<h4 class="unnumberedsubsec">バグを含む三角形判定プログラムの場合</h4>
-<p>バグを含む三角形判定プログラムを準備してテストグループを実行した場合、<samp><span class="file">TEST.log</span></samp>は次のように表示されます。
+<p>バグを含む三角形判定プログラムを準備してテストグループを実行した場合、<samp><span class="file">TEST.log</span></samp>は次のように表示されます。01_scaleneのほか、11_zeroのテストで失敗しています。すべての辺がゼロである場合に表示が正しくないバグがあることがわかります。
+
<pre class="example"> 01_scalene/
有効な不等辺三角形をあらわすテスト・ケース
01_scalene: Test Failure 2011-01-10 21:45:52
Detail in /home/foo/triangle/test/04_isosceles_c/detail.log
</pre>
- <p>実際の開発では、こうした結果を元にプログラムの問題点を修正することになるでしょう。
+ <div class="node">
+<a name="Template-dir"></a>
+<p><hr>
+Next: <a rel="next" accesskey="n" href="#Group-dir">Group dir</a>,
+Previous: <a rel="previous" accesskey="p" href="#Tutorial">Tutorial</a>,
+Up: <a rel="up" accesskey="u" href="#Top">Top</a>
-<p><a name="Manual"></a>
+</div>
-<h2 class="chapter">4 Autotest.mkマニュアル</h2>
+<h2 class="chapter">4 テンプレートディレクトリー マニュアル</h2>
-<p><a name="Template-Dir"></a>
+<p>テンプレートディレクトリーは、Autotest.mkをインストールするときに展開により作成された<samp><span class="file">template</span></samp>ディレクトリーです。
-<h3 class="section">4.1 テンプレートディレクトリー</h3>
+<ul class="menu">
+<li><a accesskey="1" href="#make-group">make group</a>: <kbd>make</kbd>または<kbd>make group</kbd> - グループディレクトリーの作成
+<li><a accesskey="2" href="#Template-Files">Template Files</a>: テンプレートのファイル
+</ul>
-<p>テンプレートディレクトリーは、Autotest.mkをインストールするときに展開により作成された<samp><span class="file">template</span></samp>ディレクトリーです。このディレクトリーに移動すると次の操作ができます。
+<div class="node">
+<a name="make-group"></a>
+<p><hr>
+Next: <a rel="next" accesskey="n" href="#Template-Files">Template Files</a>,
+Previous: <a rel="previous" accesskey="p" href="#Template-dir">Template dir</a>,
+Up: <a rel="up" accesskey="u" href="#Template-dir">Template dir</a>
-<p><a name="make-group"></a>
+</div>
-<h4 class="subsection">4.1.1 <kbd>make</kbd>または<kbd>make group</kbd> - グループの作成</h4>
+<h3 class="section">4.1 <kbd>make</kbd>または<kbd>make group</kbd> - グループディレクトリーの作成</h3>
-<p>変数<code>GROUPDIR</code>で指定されたディレクトリーをテストグループディレクトリーとして作成し、必要なファイルを配置します。
+<p>変数<code>GROUPDIR</code>で指定されたディレクトリーをテストグループディレクトリーとして作成し、テストの実行に必要な次のファイルを配置します。
-<h5 class="unnumberedsubsubsec">使用例</h5>
+ <ul>
+<li><samp><span class="file">Define.mk</span></samp>
+
+ <li><samp><span class="file">Makefile</span></samp>
+
+ <li><samp><span class="file">Test.mk</span></samp>
+</ul>
+
+ <p>配置のため、通常はファイルをコピーされます。変数<code>LINKMK</code>を指定した場合は、シンボリックリンクが作成されます。
+
+<h4 class="subsection">4.1.1 変数</h4>
+
+ <dl>
+<dt><code>GROUPDIR</code><dd>テストディレクトリーを指定します。指定しない場合や既存のディレクトリーを指定した場合は、エラーが発生してテストグループディレクトリーは作成されません。
+
+ <br><dt><code>LINKMK</code><dd>指定した場合、グループディレクトリーにテストの実行に必要なファイルのシンボリックリンクが作成されます。値は任意です。
+
+ <p>シンボリックリンクのリンク先は、テンプレートディレクトリーの中です。指定しない場合、テストに必要なファイルはテンプレートディレクトリーからコピーされます。
+</dl>
+
+<h4 class="unnumberedsubsec">使用例</h4>
<p>グループディレクトリーとして<samp><span class="file">~/triangle/test</span></samp>を作成します。
<pre class="example"> $ <kbd>make GROUPDIR=~/triangle/test</kbd>
</pre>
- <p><a name="Template-Files"></a>
+ <div class="node">
+<a name="Template-Files"></a>
+<p><hr>
+Previous: <a rel="previous" accesskey="p" href="#make-group">make group</a>,
+Up: <a rel="up" accesskey="u" href="#Template-dir">Template dir</a>
+
+</div>
-<h4 class="subsection">4.1.2 テンプレートのファイル</h4>
+<h3 class="section">4.2 テンプレートのファイル</h3>
<p>テンプレートディレクトリーには、次のファイルが含まれます。
<dl>
<br><dt><samp><span class="file">Test.mk</span></samp><dd>テストディレクトリーから参照されるMakefile。<kbd>make</kbd>または<kbd>make group</kbd>で、グループディレクトリーに配置されます。
<br><dt><samp><span class="file">Define.mk</span></samp><dd>テストとテストグループに関する項目を定義したMakefile。<kbd>make</kbd>または<kbd>make group</kbd>で、グループディレクトリーに配置されます。
+</dl>
- <br><dt><samp><span class="file">Define_group.mk</span></samp><dd>テストグループに関する項目を定義したMakefile。<kbd>make</kbd>または<kbd>make group</kbd>で、グループディレクトリーに配置されます。
+<div class="node">
+<a name="Group-dir"></a>
+<p><hr>
+Next: <a rel="next" accesskey="n" href="#Test-dir">Test dir</a>,
+Previous: <a rel="previous" accesskey="p" href="#Template-dir">Template dir</a>,
+Up: <a rel="up" accesskey="u" href="#Top">Top</a>
- <br><dt><samp><span class="file">Define.mk</span></samp><dd>テストに関する項目を定義したMakefile。<kbd>make</kbd>または<kbd>make group</kbd>で、グループディレクトリーに配置されます。
-</dl>
+</div>
-<p><a name="Group-Dir"></a>
+<h2 class="chapter">5 グループディレクトリー マニュアル</h2>
-<h3 class="section">4.2 グループディレクトリー</h3>
+<p><a href="#make-group">グループディレクトリーの作成</a>後、グループディレクトリーに移動すると次の操作ができます。
-<p><a href="#make-group">グループの作成</a>後、グループディレクトリーに移動すると次の操作ができます。
+<ul class="menu">
+<li><a accesskey="1" href="#make-create">make create</a>: <kbd>make create</kbd> - テストの作成
+<li><a accesskey="2" href="#Rename-and-Copy">Rename and Copy</a>: テスト名の変更とコピー
+<li><a accesskey="3" href="#Delete">Delete</a>: テストの削除
+<li><a accesskey="4" href="#make-check-at-group">make check at group</a>: <kbd>make</kbd>または<kbd>make check</kbd> - テストグループの実行
+<li><a accesskey="5" href="#make-checkall">make checkall</a>: <kbd>make checkall</kbd> - グループ内にあるすべてのテストの実行、計時
+<li><a accesskey="6" href="#make-clean-at-group">make clean at group</a>: <kbd>make clean</kbd> - グループ内にあるすべてのテストで、実行結果をクリア
+<li><a accesskey="7" href="#make-time-at-group">make time at group</a>: <kbd>make time</kbd> - グループ内にあるすべてのテストを計時
+<li><a accesskey="8" href="#make-cleantime-at-group">make cleantime at group</a>: <kbd>make cleantime</kbd> - グループ内にあるすべてのテストで、計時結果をクリア
+<li><a accesskey="9" href="#Group-Files">Group Files</a>: グループのファイル
+</ul>
-<p><a name="make-create"></a>
+<div class="node">
+<a name="make-create"></a>
+<p><hr>
+Next: <a rel="next" accesskey="n" href="#Rename-and-Copy">Rename and Copy</a>,
+Previous: <a rel="previous" accesskey="p" href="#Group-dir">Group dir</a>,
+Up: <a rel="up" accesskey="u" href="#Group-dir">Group dir</a>
-<h4 class="subsection">4.2.1 <kbd>make create</kbd> - テストの作成</h4>
+</div>
+
+<h3 class="section">5.1 <kbd>make create</kbd> - テストの作成</h3>
<p>変数<code>TEST</code>で指定されたディレクトリーをテストディレクトリーとして作成し、必要なファイルを配置します。
テスト名は、小文字のアルファベットと数字で指定します。大文字ではじまる名前を指定した場合、テストディレクトリーとして扱われません。
-<h5 class="unnumberedsubsubsec">使用例</h5>
+<h4 class="unnumberedsubsec">使用例</h4>
<p>テストディレクトリーを、<code>01_scalene</code>という名前で作成します。
<pre class="example"> $ <kbd>make create TEST=01_scalene</kbd>
</pre>
- <p><a name="Rename"></a>
+ <div class="node">
+<a name="Rename-and-Copy"></a>
+<p><hr>
+Next: <a rel="next" accesskey="n" href="#Delete">Delete</a>,
+Previous: <a rel="previous" accesskey="p" href="#make-create">make create</a>,
+Up: <a rel="up" accesskey="u" href="#Group-dir">Group dir</a>
+
+</div>
+
+<h3 class="section">5.2 テスト名の変更とコピー</h3>
-<h4 class="subsection">4.2.2 テスト名の変更とコピー</h4>
+<p>テスト名を変更したりテストをコピーしたりする場合は、<kbd>mv</kbd>や<kbd>cp</kbd>などでテストディレクトリーを移動、コピーします。
-<p>テスト名を変更する場合は、<code>mv</code>コマンドを使います。また、<code>cp</code>コマンドを使ってテストをコピーすることもできます。
+<h4 class="unnumberedsubsec">使用例</h4>
-<h5 class="unnumberedsubsubsec">使用例</h5>
+<p>テスト名<code>01_scalene</code>を<code>01</code>に変更します。
<pre class="example"> $ <kbd>mv 01_scalene 01</kbd>
- $ <kbd>cp -r 01 02</kbd>
</pre>
-<p><a name="Delete"></a>
+ <p>テスト<code>01</code>をコピーし、テスト<code>02</code>を作成します。
+
+<pre class="example"> $ <kbd>cp -r 01 02</kbd>
+</pre>
+ <div class="node">
+<a name="Delete"></a>
+<p><hr>
+Next: <a rel="next" accesskey="n" href="#make-check-at-group">make check at group</a>,
+Previous: <a rel="previous" accesskey="p" href="#Rename-and-Copy">Rename and Copy</a>,
+Up: <a rel="up" accesskey="u" href="#Group-dir">Group dir</a>
+
+</div>
-<h4 class="subsection">4.2.3 テストの削除</h4>
+<h3 class="section">5.3 テストの削除</h3>
-<p>テストを削除する場合は、<code>rm</code>コマンドを使います。
+<p>テストを削除する場合は、<kbd>rm</kbd>などでテストディレクトリーを削除します。
-<h5 class="unnumberedsubsubsec">使用例</h5>
+<h4 class="unnumberedsubsec">使用例</h4>
<pre class="example"> $ <kbd>rm -rf 01_scalene</kbd>
</pre>
-<p><a name="make-check-at-group"></a>
+<div class="node">
+<a name="make-check-at-group"></a>
+<p><hr>
+Next: <a rel="next" accesskey="n" href="#make-checkall">make checkall</a>,
+Previous: <a rel="previous" accesskey="p" href="#Delete">Delete</a>,
+Up: <a rel="up" accesskey="u" href="#Group-dir">Group dir</a>
-<h4 class="subsection">4.2.4 <kbd>make</kbd>または<kbd>make check</kbd> - テストグループの実行</h4>
+</div>
+
+<h3 class="section">5.4 <kbd>make</kbd>または<kbd>make check</kbd> - テストグループの実行</h3>
<p><kbd>make</kbd>または<kbd>make check</kbd>で、グループ内にあるすべての<a href="#make-check-at-test">テストの実行</a>をし、次の項目を表示します。
<br><dt><samp><span class="file">Summary.log</span></samp><dd>テスト実行結果の概要を表します。テストグループ実行時に表示される内容です。
</dl>
-<h5 class="unnumberedsubsubsec">使用例</h5>
+<h4 class="unnumberedsubsec">使用例</h4>
<pre class="example"> $ <kbd>make</kbd>
test: 13 / 13 tests passed. Detail in /home/foo/triangle/test/TEST.log
test: All tests are succeded.
</pre>
-<p><a name="make-checkall"></a>
+<div class="node">
+<a name="make-checkall"></a>
+<p><hr>
+Next: <a rel="next" accesskey="n" href="#make-clean-at-group">make clean at group</a>,
+Previous: <a rel="previous" accesskey="p" href="#make-check-at-group">make check at group</a>,
+Up: <a rel="up" accesskey="u" href="#Group-dir">Group dir</a>
+
+</div>
-<h4 class="subsection">4.2.5 <kbd>make checkall</kbd> - グループ内にあるすべてのテストの実行、計時</h4>
+<h3 class="section">5.5 <kbd>make checkall</kbd> - グループ内にあるすべてのテストの実行、計時</h3>
-<p><kbd>make checkall</kbd>でグループ内にあるすべてのテストを、<a href="#make-check-at-test">実行</a>し、<a href="#make-time-at-test">計時</a>します。<a href="#make-check-at-group">テストの実行</a>と同じ項目を表示し、出力されるファイルの種類も同じです。<code><テストグループ名を大文字にした文字列>.log</code>には、テストと実行結果に加え、計時結果が一覧として出力されます。
+<p><kbd>make checkall</kbd>ã\81§ã\82°ã\83«ã\83¼ã\83\97å\86\85ã\81«ã\81\82ã\82\8bã\81\99ã\81¹ã\81¦ã\81®ã\83\86ã\82¹ã\83\88ã\82\92ã\80\81<a href="#make-check-at-test">å®\9fè¡\8c</a>ã\81\97ã\80\81<a href="#make-time-at-test">è¨\88æ\99\82</a>ã\81\97ã\81¾ã\81\99ã\80\82<a href="#make-check-at-group">ã\83\86ã\82¹ã\83\88ã\82°ã\83«ã\83¼ã\83\97ã\81®å®\9fè¡\8c</a>ã\81¨å\90\8cã\81\98é \85ç\9b®ã\82\92表示ã\81\97ã\80\81å\87ºå\8a\9bã\81\95ã\82\8cã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\81®ç¨®é¡\9eã\82\82å\90\8cã\81\98ã\81§ã\81\99ã\80\82<code><ã\83\86ã\82¹ã\83\88ã\82°ã\83«ã\83¼ã\83\97å\90\8dã\82\92大æ\96\87å\97ã\81«ã\81\97ã\81\9fæ\96\87å\97å\88\97>.log</code>ã\81«ã\81¯ã\80\81ã\83\86ã\82¹ã\83\88ã\81¨å®\9fè¡\8cçµ\90æ\9e\9cã\81«å\8a ã\81\88ã\80\81è¨\88æ\99\82çµ\90æ\9e\9cã\81\8cä¸\80覧ã\81¨ã\81\97ã\81¦å\87ºå\8a\9bã\81\95ã\82\8cã\81¾ã\81\99ã\80\82
- <p>テストの計時と実行は別に行われるため、通常にテストを実行するよりも2倍程度の時間がかかります。
+ <p>テストの実行と計時は別に行われるため、通常にテストを実行するよりも2倍程度の時間がかかります。
-<h5 class="unnumberedsubsubsec">使用例</h5>
+<h4 class="unnumberedsubsec">使用例</h4>
<pre class="example"> $ <kbd>make checkall</kbd>
test: 13 / 13 tests passed. Detail in /home/foo/triangle/test/TEST.log
test: All tests are succeded.
</pre>
-<p><a name="make-clean-at-group"></a>
+<div class="node">
+<a name="make-clean-at-group"></a>
+<p><hr>
+Next: <a rel="next" accesskey="n" href="#make-time-at-group">make time at group</a>,
+Previous: <a rel="previous" accesskey="p" href="#make-checkall">make checkall</a>,
+Up: <a rel="up" accesskey="u" href="#Group-dir">Group dir</a>
-<h4 class="subsection">4.2.6 <kbd>make clean</kbd> - グループの実行結果をクリア</h4>
+</div>
+
+<h3 class="section">5.6 <kbd>make clean</kbd> - グループの実行結果をクリア</h3>
-<p><kbd>make clean</kbd>で、<kbd>make</kbd>、<kbd>make check</kbd>、<kbd>make checkall</kbd>により作成されたテストグループと各テストのファイルをすべて削除します。
+<p><kbd>make clean</kbd>で、<a href="#make-check-at-group"><kbd>make</kbd>または<kbd>make check</kbd></a>や<a href="#make-checkall"><kbd>make checkall</kbd></a>により作成されたファイルをすべて削除します。グループディレクトリーのほか、テストディレクトリーのファイルも削除されます。
-<h5 class="unnumberedsubsubsec">使用例</h5>
+<h4 class="unnumberedsubsec">使用例</h4>
<pre class="example"> $ <kbd>cd ~/triangle/test</kbd>
$ <kbd>make clean</kbd>
</pre>
-<p><a name="make-time-at-group"></a>
+<div class="node">
+<a name="make-time-at-group"></a>
+<p><hr>
+Next: <a rel="next" accesskey="n" href="#make-cleantime-at-group">make cleantime at group</a>,
+Previous: <a rel="previous" accesskey="p" href="#make-clean-at-group">make clean at group</a>,
+Up: <a rel="up" accesskey="u" href="#Group-dir">Group dir</a>
-<h4 class="subsection">4.2.7 <kbd>make time</kbd> - グループ内にあるすべてのテストを計時</h4>
+</div>
+
+<h3 class="section">5.7 <kbd>make time</kbd> - グループ内にあるすべてのテストを計時</h3>
<p><kbd>make time</kbd>で、グループ内にあるすべてのテストを計時し、その結果が表示されます。計時結果は、<samp><span class="file"><テストグループ名を大文字にした文字列>_time.log</span></samp>に格納されます。
-<h5 class="unnumberedsubsubsec">使用例</h5>
+<h4 class="unnumberedsubsec">使用例</h4>
<pre class="example"> $ <kbd>make time</kbd>
01_scalene/
13_argcnt/
real 0m0.012s
</pre>
-<p><a name="make-cleantime-at-group"></a>
+<div class="node">
+<a name="make-cleantime-at-group"></a>
+<p><hr>
+Next: <a rel="next" accesskey="n" href="#Group-Files">Group Files</a>,
+Previous: <a rel="previous" accesskey="p" href="#make-time-at-group">make time at group</a>,
+Up: <a rel="up" accesskey="u" href="#Group-dir">Group dir</a>
+
+</div>
+
+<h3 class="section">5.8 <kbd>make cleantime</kbd> - グループの計時結果をクリア</h3>
-<h4 class="subsection">4.2.8 <kbd>make cleantime</kbd> - グループの計時結果をクリア</h4>
+<p><kbd>make cleatime</kbd>で、<kbd>make time</kbd>により作成されたテストグループディレクトリーと各テストディレクトリーのファイルをすべて削除します。
-<p><kbd>make cleatime</kbd>で、<kbd>make time</kbd>により作成されたテストグループと各テストのファイルをすべて削除します。
+<div class="node">
+<a name="Group-Files"></a>
+<p><hr>
+Previous: <a rel="previous" accesskey="p" href="#make-cleantime-at-group">make cleantime at group</a>,
+Up: <a rel="up" accesskey="u" href="#Group-dir">Group dir</a>
-<p><a name="Group-Files"></a>
+</div>
-<h4 class="subsection">4.2.9 グループのファイル</h4>
+<h3 class="section">5.9 グループディレクトリーのファイル</h3>
<p>グループディレクトリーには、テストディレクトリーに加えて、次のファイルが含まれます。
<br><dt><samp><span class="file">Define.mk</span></samp><dd>テストとテストグループに関する項目を定義したMakefile
- <br><dt><samp><span class="file">Define_group.mk</span></samp><dd>テストグループに関する項目を定義したMakefile
+ <br><dt><samp><span class="file"><テストグループ名を大文字にした文字列>.log</span></samp><dd><a href="#make-check-at-group"><kbd>make</kbd>または<kbd>make check</kbd></a>や<a href="#make-checkall"><kbd>make checkall</kbd></a>を実行したときに作成されます。<kbd>make</kbd>や<kbd>make check</kbd>の場合は、テストグループに含まれるテストと実行結果の一覧です。<kbd>make checkall</kbd>の場合は、テストと実行結果と計時結果の一覧です。
+
+ <br><dt><samp><span class="file">Summary.log</span></samp><dd>テスト実行結果の概要です。<a href="#make-check-at-group"><kbd>make</kbd>または<kbd>make check</kbd></a>や<a href="#make-checkall"><kbd>make checkall</kbd></a>を実行すると作成され、その内容が表示されます。
+</dl>
+
+<div class="node">
+<a name="Test-dir"></a>
+<p><hr>
+Previous: <a rel="previous" accesskey="p" href="#Group-dir">Group dir</a>,
+Up: <a rel="up" accesskey="u" href="#Top">Top</a>
+
+</div>
+
+<h2 class="chapter">6 テストディレクトリー マニュアル</h2>
+
+<ul class="menu">
+<li><a accesskey="1" href="#make-set">make set</a>: <kbd>make set</kbd> - テスト想定の作成
+<li><a accesskey="2" href="#make-reset">make reset</a>: <kbd>make reset</kbd> - テスト想定の作成または更新
+<li><a accesskey="3" href="#make-check-at-test">make check at test</a>: <kbd>make</kbd>または<kbd>make check</kbd> - テストの実行
+<li><a accesskey="4" href="#make-time-at-test">make time at test</a>: <kbd>make time</kbd> - テストの計時
+<li><a accesskey="5" href="#make-cleantime-at-test">make cleantime at test</a>: <kbd>make cleantime</kbd> - テスト計時結果のクリア
+<li><a accesskey="6" href="#make-clean-at-test">make clean at test</a>: <kbd>make clean</kbd> - テスト結果のクリア
+<li><a accesskey="7" href="#make-cleanall-at-test">make cleanall at test</a>: <kbd>make cleanall</kbd> - テストの想定と結果をクリア
+<li><a accesskey="8" href="#Test-Files">Test Files</a>: テストディレクトリーのファイル
+</ul>
+
+<div class="node">
+<a name="make-set"></a>
+<p><hr>
+Next: <a rel="next" accesskey="n" href="#make-reset">make reset</a>,
+Previous: <a rel="previous" accesskey="p" href="#Test-dir">Test dir</a>,
+Up: <a rel="up" accesskey="u" href="#Test-dir">Test dir</a>
+
+</div>
+
+<h3 class="section">6.1 <kbd>make set</kbd> - テスト想定の作成</h3>
+
+<p><kbd>make set</kbd>で、テストコマンド<samp><span class="file">cmd</span></samp>が実行され、テスト想定ファイル<samp><span class="file">0.txt</span></samp>が作成されます。また、実行時に<samp><span class="file">0.txt</span></samp>の内容が表示されます。<samp><span class="file">0.txt</span></samp>がすでにある場合は、エラーが発生して<samp><span class="file">0.txt</span></samp>は更新されません。
+
+<h4 class="unnumberedsubsec">使用例</h4>
+
+<pre class="example"> $ <kbd>make set</kbd>
+ scalene triangle
+</pre>
+<div class="node">
+<a name="make-reset"></a>
+<p><hr>
+Next: <a rel="next" accesskey="n" href="#make-check-at-test">make check at test</a>,
+Previous: <a rel="previous" accesskey="p" href="#make-set">make set</a>,
+Up: <a rel="up" accesskey="u" href="#Test-dir">Test dir</a>
+
+</div>
+
+<h3 class="section">6.2 <kbd>make reset</kbd> - テスト想定の作成または更新</h3>
+
+<p><kbd>make reset</kbd>で、テストコマンド<samp><span class="file">cmd</span></samp>が実行され、テスト想定ファイル<samp><span class="file">0.txt</span></samp>を作成されます。また、実行時に<samp><span class="file">0.txt</span></samp>の内容が表示されます。<samp><span class="file">0.txt</span></samp>がすでにある場合、<samp><span class="file">0.txt</span></samp>が更新されます。
+
+<h4 class="unnumberedsubsec">使用例</h4>
+
+<pre class="example"> $ <kbd>make reset</kbd>
+ scalene triangle
+</pre>
+<div class="node">
+<a name="make-check-at-test"></a>
+<p><hr>
+Next: <a rel="next" accesskey="n" href="#make-time-at-test">make time at test</a>,
+Previous: <a rel="previous" accesskey="p" href="#make-reset">make reset</a>,
+Up: <a rel="up" accesskey="u" href="#Test-dir">Test dir</a>
+
+</div>
- <br><dt><samp><span class="file">Define.mk</span></samp><dd>テストに関する項目を定義したMakefile
+<h3 class="section">6.3 <kbd>make</kbd>または<kbd>make check</kbd> - テストの実行</h3>
- <br><dt><samp><span class="file"><テストグループ名を大文字にした文字列>.log</span></samp><dd><a href="#make-check-at-group"><kbd>make</kbd>や<kbd>make check</kbd></a>または<a href="#make-checkall"><kbd>make checkall</kbd></a>を実行したときに作成されます。<kbd>make</kbd>や<kbd>make check</kbd>の場合は、テストグループに含まれるテストと実行結果の一覧です。<kbd>make checkall</kbd>の場合は、テストと実行結果と計時結果の一覧です。
+<p><kbd>make</kbd>または<kbd>make check</kbd>で、テストコマンド<samp><span class="file">cmd</span></samp>が実行され、テスト結果ファイル<samp><span class="file">1.txt</span></samp>が作成されます。また、実行時にテストの結果をあらわす次の項目が表示されます。
- <br><dt><samp><span class="file">Summary.log</span></samp><dd>テスト実行結果の概要です。<a href="#make-check-at-group"><kbd>make</kbd>や<kbd>make check</kbd></a>または<a href="#make-checkall"><kbd>make checkall</kbd></a>を実行すると作成され、その内容が表示されます。
+ <ul>
+<li><テスト説明ファイル<samp><span class="file">desc.txt</span></samp>の内容>
- </dl>
+ <li><テスト名>: <テスト結果(Test SuccessまたはTest Failure)> <テスト実行日時>
-<p><a name="Test-Dir"></a>
+ <li>Detail in <テスト詳細ログファイルの絶対パス>
+</ul>
-<h3 class="section">4.3 テストディレクトリー</h3>
+<h4 class="unnumberedsubsec">使用例</h4>
-<p><a name="make-set"></a>
+<pre class="example"> $ <kbd>make</kbd>
+ 有効な不等辺三角形をあらわすテスト・ケース
+ 01_scalene: Test Success 2011-01-10 10:09:55
+ Detail in /home/foo/triangle/test/01_scalene/detail.log
+</pre>
+<div class="node">
+<a name="make-clean-at-test"></a>
+<p><hr>
+Next: <a rel="next" accesskey="n" href="#make-cleanall-at-test">make cleanall at test</a>,
+Previous: <a rel="previous" accesskey="p" href="#make-cleantime-at-test">make cleantime at test</a>,
+Up: <a rel="up" accesskey="u" href="#Test-dir">Test dir</a>
-<h4 class="subsection">4.3.1 <kbd>make set</kbd> - テスト想定の作成</h4>
+</div>
-<p><a name="make-reset"></a>
+<h3 class="section">6.4 <kbd>make clean</kbd> - テスト結果のクリア</h3>
-<h4 class="subsection">4.3.2 <kbd>make set</kbd> - テスト想定の再作成</h4>
+<p><kbd>make clean</kbd>で、テストの実行または計時の結果作成された次のファイルが削除されます。
-<p><a name="make-check-at-test"></a>
+ <ul>
+<li><samp><span class="file">1.txt</span></samp>
-<h4 class="subsection">4.3.3 <kbd>make</kbd>または<kbd>make check</kbd> - テストの実行</h4>
+ <li><samp><span class="file">diff.log</span></samp>
-<p><a name="make-time-at-test"></a>
+ <li><samp><span class="file">err.log</span></samp>
-<h4 class="subsection">4.3.4 <kbd>make time</kbd> - テストの計時</h4>
+ <li><samp><span class="file">summary.log</span></samp>
-<p><a name="make-cleantime-at-test"></a>
+ <li><samp><span class="file">time.log</span></samp>
+</ul>
-<h4 class="subsection">4.3.5 <kbd>make cleantime</kbd> - テスト計時結果のクリア</h4>
+<h4 class="unnumberedsubsec">使用例</h4>
-<p><a name="make-clean-at-test"></a>
+<pre class="example"> $ <kbd>make clean</kbd>
+ $ <kbd>ls</kbd>
+ 0.txt Makefile cmd desc.txt
+</pre>
+<div class="node">
+<a name="make-cleanall-at-test"></a>
+<p><hr>
+Next: <a rel="next" accesskey="n" href="#Test-Files">Test Files</a>,
+Previous: <a rel="previous" accesskey="p" href="#make-clean-at-test">make clean at test</a>,
+Up: <a rel="up" accesskey="u" href="#Test-dir">Test dir</a>
-<h4 class="subsection">4.3.6 <kbd>make cleantime</kbd> - テスト結果のクリア</h4>
+</div>
+
+<h3 class="section">6.5 <kbd>make cleanall</kbd> - テストの想定と結果をクリア</h3>
-<p><a name="make-cleanall-at-test"></a>
+<p><kbd>make clean</kbd>で次の、テストの想定ファイルとテストの実行または計時の結果作成されたファイルが削除されます。
+
+ <ul>
+<li><samp><span class="file">0.txt</span></samp>
-<h4 class="subsection">4.3.7 <kbd>make cleanall</kbd> - テストの想定と結果をクリア</h4>
+ <li><samp><span class="file">1.txt</span></samp>
-<p><a name="Test-Files"></a>
+ <li><samp><span class="file">diff.log</span></samp>
-<h4 class="subsection">4.3.8 テストのファイル</h4>
+ <li><samp><span class="file">err.log</span></samp>
+
+ <li><samp><span class="file">summary.log</span></samp>
+
+ <li><samp><span class="file">time.log</span></samp>
+</ul>
+
+<h4 class="unnumberedsubsec">使用例</h4>
+
+<pre class="example"> $ <kbd>make cleanall</kbd>
+ $ <kbd>ls</kbd>
+ Makefile cmd desc.txt
+</pre>
+<div class="node">
+<a name="make-time-at-test"></a>
+<p><hr>
+Next: <a rel="next" accesskey="n" href="#make-cleantime-at-test">make cleantime at test</a>,
+Previous: <a rel="previous" accesskey="p" href="#make-check-at-test">make check at test</a>,
+Up: <a rel="up" accesskey="u" href="#Test-dir">Test dir</a>
+
+</div>
+
+<h3 class="section">6.6 <kbd>make time</kbd> - テストの計時</h3>
+
+<p><kbd>make time</kbd>で、テストを計時しその結果が表示されます。計時結果は、<samp><span class="file">time.log</span></samp>に格納されます。
+
+<h4 class="unnumberedsubsec">使用例</h4>
+
+<pre class="example"> $ <kbd>make time</kbd>
+ real 0m0.006s
+</pre>
+<div class="node">
+<a name="make-cleantime-at-test"></a>
+<p><hr>
+Next: <a rel="next" accesskey="n" href="#make-clean-at-test">make clean at test</a>,
+Previous: <a rel="previous" accesskey="p" href="#make-time-at-test">make time at test</a>,
+Up: <a rel="up" accesskey="u" href="#Test-dir">Test dir</a>
+
+</div>
+
+<h3 class="section">6.7 <kbd>make cleantime</kbd> - テスト計時結果のクリア</h3>
+
+<p><kbd>make clean</kbd>で、テストの計時の結果作成された次のファイルが削除されます。
+
+ <ul>
+<li><samp><span class="file">time.log</span></samp>
+</ul>
+
+<div class="node">
+<a name="Test-Files"></a>
+<p><hr>
+Previous: <a rel="previous" accesskey="p" href="#make-cleanall-at-test">make cleanall at test</a>,
+Up: <a rel="up" accesskey="u" href="#Test-dir">Test dir</a>
+
+</div>
+
+<h3 class="section">6.8 テストディレクトリーのファイル</h3>
+
+ <dl>
+<dt><samp><span class="file">Makefile</span></samp><dd>テストディレクトリーのMakefile
+
+ <br><dt><samp><span class="file">cmd</span></samp><dd>テスト時に実行されるコマンドをあらわすテストコマンドファイル。手動で作成します。
+
+ <br><dt><samp><span class="file">desc.txt</span></samp><dd>テストに関する説明をあらわし、テストの結果と一緒にログに出力されます。手動で作成します。
+
+ <br><dt><samp><span class="file">0.txt</span></samp><dd>テストが正しく実行された場合の結果をあらわすテスト想定ファイル。エラー発生時は、標準出力のあとにエラー出力を続けます。手動か、<kbd>make set</kbd>か、<kbd>make reset</kbd>で作成します。
+
+ <br><dt><samp><span class="file">1.txt</span></samp><dd>テスト結果をあらわします。エラー発生時は、標準出力のあとにエラー出力が続きます。<kbd>make</kbd>または<kbd>make check</kbd>で作成されます。
+
+ <br><dt><samp><span class="file">diff.log</span></samp><dd>テストの想定と結果の差分をあらわす差分ファイル。<kbd>make</kbd>または<kbd>make check</kbd>でテストを実行した結果、想定と差分が異なる場合に作成されます。想定と結果が同じ場合は作成されません。
+
+ <br><dt><samp><span class="file">err.log</span></samp><dd>テストのエラー出力をあらわすエラーファイル。<kbd>make</kbd>または<kbd>make check</kbd>でテストを実行した結果、エラー出力がある場合に作成されます。なお、エラー出力は<samp><span class="file">1.txt</span></samp>にも含まれます。
+
+ <br><dt><samp><span class="file">summary.log</span></samp><dd>テスト実行結果の概要です。<kbd>make</kbd>または<kbd>make check</kbd>で作成され、その内容が表示されます。
+
+ <br><dt><samp><span class="file">detail.log</span></samp><dd>テスト実行結果の詳細です。<samp><span class="file">summary.log</span></samp> <samp><span class="file">cmd</span></samp> <samp><span class="file">0.txt</span></samp> <samp><span class="file">err.log</span></samp> <samp><span class="file">diff.log</span></samp> <samp><span class="file">1.txt</span></samp>の内容がコピーされます。<kbd>make</kbd>または<kbd>make check</kbd>で作成されます。
+</dl>
-<div class="footnote">
+ <div class="footnote">
<hr>
<a name="texinfo-footnotes-in-document"></a><h4>Footnotes</h4><p class="footnote"><small>[<a name="fn-1" href="#fnd-1">1</a>]</small> 『ソフトウェア・テストの技法』では「カードから3つの整数を読む」となっているのを、「3つの引数をとる」に変更しています。</p>
@insertcopying
@end titlepage
-@ifnottex
@node Top, About, (dir), (dir)
-@end ifnottex
@menu
-* About:: Autotest.mkの概要
-* Install:: Autotest.mkのインストール
-* Tutorial:: Autotest.mkチュートリアル
-* Manual:: Autotest.mkマニュアル
+* About:: Autotest.mk 概要
+* Install:: Autotest.mk インストール
+* Tutorial:: Autotest.mk チュートリアル
+* Template dir:: テンプレートディレクトリー マニュアル
+* Group dir:: グループディレクトリー マニュアル
+* Test dir:: テストディレクトリー マニュアル
+
+@ifinfo
@detailmenu
--- The Detailed Node Listing ---
-Autotest.mkのインストール
+Autotest.mk インストール
* Download:: ダウンロード
* Verify:: Autotest.mkファイルの検証
* Expand:: ファイルの展開
-Autotest.mkチュートリアル
+Autotest.mk チュートリアル - 三角形判定プログラムのテスト
+* Tutorial About:: 概要
* Prepare:: 準備
* Create Group:: グループディレクトリーの作成
* Create Test:: テストディレクトリーの作成
* Group Execute:: テストグループの実行
* Check Group Log:: テストグループログファイルの確認
-Autotest.mkマニュアル
-
-* Template Dir:: テンプレートディレクトリー
-* Group Dir:: グループディレクトリー
-* Test Dir:: テストディレクトリー
-
-テンプレートディレクトリー
+テンプレートディレクトリー マニュアル
-* make group:: @kbd{make}または@kbd{make group} - グループの作成
+* make group:: @kbd{make}ã\81¾ã\81\9fã\81¯@kbd{make group} - ã\82°ã\83«ã\83¼ã\83\97ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\83¼ã\81®ä½\9cæ\88\90
* Template Files:: テンプレートのファイル
-グループディレクトリー
+グループディレクトリー マニュアル
* make create:: @kbd{make create} - テストの作成
-* Rename:: テスト名の変更
+* Rename and Copy:: テスト名の変更とコピー
* Delete:: テストの削除
-* make check at group:: @kbd{make}ã\81¾ã\81\9fã\81¯@kbd{make check} - ã\82°ã\83«ã\83¼ã\83\97å\86\85ã\81«ã\81\82ã\82\8bã\81\99ã\81¹ã\81¦ã\81®ã\83\86ã\82¹ã\83\88の実行
+* make check at group:: @kbd{make}ã\81¾ã\81\9fã\81¯@kbd{make check} - ã\83\86ã\82¹ã\83\88ã\82°ã\83«ã\83¼ã\83\97の実行
* make checkall:: @kbd{make checkall} - グループ内にあるすべてのテストの実行、計時
* make clean at group:: @kbd{make clean} - グループ内にあるすべてのテストで、実行結果をクリア
* make time at group:: @kbd{make time} - グループ内にあるすべてのテストを計時
* make cleantime at group:: @kbd{make cleantime} - グループ内にあるすべてのテストで、計時結果をクリア
* Group Files:: グループのファイル
-テストディレクトリー
+テストディレクトリー マニュアル
* make set:: @kbd{make set} - テスト想定の作成
-* make reset:: @kbd{make set} - テスト想定の再作成
+* make reset:: @kbd{make reset} - テスト想定の作成または更新
* make check at test:: @kbd{make}または@kbd{make check} - テストの実行
* make time at test:: @kbd{make time} - テストの計時
* make cleantime at test:: @kbd{make cleantime} - テスト計時結果のクリア
-* make clean at test:: @kbd{make cleantime} - テスト結果のクリア
+* make clean at test:: @kbd{make clean} - テスト結果のクリア
* make cleanall at test:: @kbd{make cleanall} - テストの想定と結果をクリア
-* Test Files:: テストのファイル
+* Test Files:: ã\83\86ã\82¹ã\83\88ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\83¼ã\81®ã\83\95ã\82¡ã\82¤ã\83«
@end detailmenu
+@end ifinfo
+
@end menu
@contents
@node About, Install, Top, Top
-@chapter Autotest.mkの概要
+@chapter Autotest.mk 概要
Autotest.mkは、GNU Makeを利用したテスト自動化ツールです。何回か@kbd{make}コマンドを実行し、コマンドファイルとテスト結果の想定をあらわすファイルを作成すれば、テストの準備は完了です。あとは@kbd{make}コマンドを1回実行すれば、テストを実行できます。テストが実行されると、詳細なログが出力されます。
-Autotest.mkでは、次の3つの概念を使います。
+Autotest.mkでは、次の3つのディレクトリーを使います。
@table @option
-@item テンプレート
-ã\83\86ã\82¹ã\83\88ã\82°ã\83«ã\83¼ã\83\97ã\81¨ã\83\86ã\82¹ã\83\88ã\81®ã\83\86ã\83³ã\83\97ã\83¬ã\83¼ã\83\88ã\81§ã\81\99ã\80\82
+@item テンプレートディレクトリー
+ã\83\86ã\82¹ã\83\88ã\82°ã\83«ã\83¼ã\83\97ã\81¨ã\83\86ã\82¹ã\83\88ã\81®ã\83\86ã\83³ã\83\97ã\83¬ã\83¼ã\83\88ã\81¨ã\81ªã\82\8bã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\83¼
-@item テストグループ
-複数のテストを含むグループです。
+@item テストグループディレクトリー
+1つまたは複数のテストを含むディレクトリー
-@item テスト
-ã\83\86ã\82¹ã\83\88å\80\8bã\80\85ã\81®å\86\85容ã\81¨çµ\90æ\9e\9cã\82\92表ã\81\97ã\81¾ã\81\99ã\80\82
+@item テストディレクトリー
+ã\83\86ã\82¹ã\83\88å®\9fè¡\8cã\81®ã\81\9fã\82\81ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\81¨ã\80\81å®\9fè¡\8cçµ\90æ\9e\9cã\82\92ã\81\82ã\82\89ã\82\8fã\81\99ã\83\95ã\82¡ã\82¤ã\83«ã\82\92å\90«ã\82\80ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\83¼
@end table
@unnumberedsec 要件
Mac OS Xでは、@uref{http://www.gnu.org/software/findutils/, GNU Findutils}をインストールしてください。
@node Install, Tutorial, About, Top
-@chapter Autotest.mkのインストール
+@chapter Autotest.mk インストール
@menu
* Download:: ダウンロード
@uref{autotest_mk.tar.gz} - Autotest.mkのファイル一式を@file{tar.gz}形式で圧縮したもの
@item
-@uref{autotest_mk.tar.gz.md5sum} - @file{autotest_mk.tar.gz}のMD5ハッシュ値
+@uref{autotest_mk.tar.gz.md5sum} - @file{autotest_mk.tar.gz}のMD5ハッシュ値。@kbd{openssl}で作成
@end itemize
または、@uref{http://github.com/j8takagi/Autotest.mk/downloads/, githubのダウンロードページ}からダウンロードします。
@node Verify, Expand, Download, Install
@section Autotest.mkファイルの検証
-ダウンロードが完了したら、@kbd{md5sum}と@kbd{diff}で正しくファイルがダウンロードができているかを検証します。
+ダウンロードが完了したら、@kbd{openssl}と@kbd{diff}で正しくファイルがダウンロードができているかを検証します。
@example
-$ @kbd{openssl md5sum autotest_mk.tar.gz | diff -s autotest_mk.tar.gz.md5sum -}
+$ @kbd{openssl md5 autotest_mk.tar.gz | diff -s autotest_mk.tar.gz.md5sum -}
Files autotest_mk.tar.gz.md5sum and - are identical
@end example
-@node Expand, , Verify, Install
+@node Expand, , Verify, Install
@section ファイルの展開
@file{autotest_mk}ファイルをダウンロードしたら、展開先のディレクトリーに移動してから、展開します。
展開したら、Autotest.mkは使えるようになります。多くのプログラムをインストールするときに必要なコンパイルやビルド、システムディレクトリーへのインストール(@kbd{./configure}や@kbd{make}、@kbd{make install})は必要ありません。
-@node Tutorial, Manual, Install, Top
-@chapter Autotest.mkチュートリアル
-
-Autotest.mkを使ったテストの手順は、次のとおりです。
-
-@enumerate
-@item
-グループディレクトリーの作成
-
-@item
-テストディレクトリーの作成
-
-@item
-テスト説明ファイルの作成
-
-@item
-テストコマンドファイルの作成
-
-@item
-テスト想定ファイルの作成
-
-@item
-テストの実行
-
-@item
-テストログファイルの確認
-
-@item
-テストグループの実行
+@node Tutorial, Template dir, Install, Top
+@chapter Autotest.mk チュートリアル - 三角形判定プログラムのテスト
-@item
-テストグループログファイルの確認
-@end enumerate
+@menu
+* Tutorial About:: 概要
+* Prepare:: 準備
+* Create Group:: グループディレクトリーの作成
+* Create Test:: テストディレクトリーの作成
+* Edit desc:: テスト説明ファイルの作成
+* Edit cmd:: テストコマンドファイルの作成
+* Test Setting:: テスト想定ファイルの作成
+* Test Execute:: テストの実行
+* Check Test Log:: テストログファイルの確認
+* Group Execute:: テストグループの実行
+* Check Group Log:: テストグループログファイルの確認
+@end menu
+@node Tutorial About, Prepare, Tutorial, Tutorial
+@unnumberedsec 概要
ここでは、Glenford J Myers『ソフトウェア・テストの技法』(近代科学社、1980)の記載を元にした、次の仕様の三角形判定プログラムをテストする手順を取り上げます@footnote{『ソフトウェア・テストの技法』では「カードから3つの整数を読む」となっているのを、「3つの引数をとる」に変更しています。}。
@quotation
有効な二等辺三角形をあらわすテスト・ケース
@item
-有効な二等辺三角形で2つの等辺を含む3種類の組合せすべてをためすことができる3つのテストケース
+æ\9c\89å\8a¹ã\81ªäº\8cç\89辺ä¸\89è§\92å½¢ã\81§2ã\81¤ã\81®ç\89辺ã\82\92å\90«ã\82\803種é¡\9eã\81®çµ\84å\90\88ã\81\9bã\81\99ã\81¹ã\81¦ã\82\92ã\81\9fã\82\81ã\81\99ã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8b3ã\81¤ã\81®ã\83\86ã\82¹ã\83\88ã\83»ã\82±ã\83¼ã\82¹
@item
1つの辺がゼロの値をもつテスト・ケース
三角形判定プログラムは、サンプルとして用意されているものを@ref{Prepare, , 準備}するか、または自作してください。
-@menu
-* Prepare:: 準備
-* Create Group:: グループディレクトリーの作成
-* Create Test:: テストディレクトリーの作成
-* Edit desc:: テスト説明ファイルの作成
-* Edit cmd:: テストコマンドファイルの作成
-* Test Setting:: テスト想定ファイルの作成
-* Test Execute:: テストの実行
-* Check Test Log:: テストログファイルの確認
-* Group Execute:: テストグループの実行
-* Check Group Log:: テストグループログファイルの確認
-@end menu
+準備ができたら、Autotest.mkを使った次の手順でテストを実行できます。
+
+@enumerate
+@item
+グループディレクトリーの作成
-@node Prepare, Create Group, Tutorial, Tutorial
+@item
+テストディレクトリーの作成
+
+@item
+テスト説明ファイルの作成
+
+@item
+テストコマンドファイルの作成
+
+@item
+テスト想定ファイルの作成
+
+@item
+テストの実行
+
+@item
+テストログファイルの確認
+
+@item
+テストグループの実行
+
+@item
+テストグループログファイルの確認
+@end enumerate
+
+@node Prepare, Create Group, Tutorial About, Tutorial
@unnumberedsec 準備
@unnumberedsubsec 作業用フォルダの作成
@example
$ @kbd{cd ~/triangle/test}
$ @kbd{ls}
-Define.mk Define_group.mk Define_test.mk Makefile Test.mk
+Define.mk Makefile Test.mk
@end example
@node Create Test, Edit desc, Create Group, Tutorial
@node Edit cmd, Test Setting, Edit desc, Tutorial
@section テストコマンドファイルの作成
-テストコマンドファイル@file{cmd}は、テストの時に実行されるコマンドをあらわします。
+テストコマンドファイル@file{cmd}は、テスト時に実行されるコマンドをあらわします。
このコマンドにより、標準出力とエラー出力にテストの結果が出力されるようにします。
ここでは、@file{cmd}をテキストエディターを使って次の内容で作成します。
@node Check Test Log, Group Execute, Test Execute, Tutorial
@section テストログファイルの確認
-テストを実行して作成されたファイルを確認します。@file{1.txt}、@file{test.log}、@file{detail.log}が作成されています。
+テストを実行して作成されたファイルを確認します。@file{1.txt}、@file{summary.log}、@file{detail.log}が作成されています。
@example
$ ls
0.txt 1.txt Makefile cmd desc.txt detail.log summary.log
@file{detail.log}は、次のようになります。
@example
-== test.log ==
+== summary.log ==
----------------------------------------------------------------------
有効な不等辺三角形をあらわすテスト・ケース
01_scalene: Test Success 2011-01-10 10:09:55
@unnumberedsubsec バグを含む三角形判定プログラムの場合
-バグを含む三角形判定プログラムを準備してテストを実行した場合、@file{1.txt}、@file{test.log}、@file{detail.log}のほかに、テスト想定とテスト結果が異なるため@kbd{diff.log}が作成されます。
+バグを含む三角形判定プログラムを準備してテストを実行した場合、@file{1.txt}、@file{summary.log}、@file{detail.log}のほかに、テスト想定とテスト結果が異なるため@kbd{diff.log}が作成されます。
@example
$ @kbd{ls}
@node Group Execute, Check Group Log, Check Test Log, Tutorial
@section テストグループの実行
-2つめ以降のテスト・ケースについても、1つめと同じ手順でテストディレクトリーの作成後、テスト説明ファイルとテストコマンドファイル、テスト想定ファイルを作成します。ここでは、先に作成した@file{01_scalene}も含めて、次のようなテストディレクトリーを作成します。
+2つめ以降のテスト・ケースについても、1つめと同じ手順でテストディレクトリーの作成後、テスト説明ファイルとテストコマンドファイル、テスト想定ファイルを作成します。
+
+ここでは、先に作成した@file{01_scalene}も含めて、次のようなディレクトリーとファイルを作成します。こうしたディレクトリーやファイルはAutotest.mkの@file{sample/triangle/test}以下にあるので、コピーして作成することもできます。
+
@itemize
@item
01_scalene
+@itemize
+@item
+@file{Makefile} @uref{sample_triangle/01_scalene/desc.txt, @file{desc.txt}} @uref{sample_triangle/01_scalene/cmd.txt, @file{cmd}} @uref{sample_triangle/01_scalene/0.txt, @file{0.txt}}
+@end itemize
+
@item
02_equilateral
+@itemize
+@item
+@file{Makefile} @uref{sample_triangle/02_equilateral/desc.txt, @file{desc.txt}} @uref{sample_triangle/02_equilateral/cmd.txt, @file{cmd}} @uref{sample_triangle/02_equilateral/0.txt, @file{0.txt}}
+@end itemize
+
@item
03_isosceles
+@itemize
+@item
+@file{Makefile} @uref{sample_triangle/03_isosceles/desc.txt, @file{desc.txt}} @uref{sample_triangle/03_isosceles/cmd.txt, @file{cmd}} @uref{sample_triangle/03_isosceles/0.txt, @file{0.txt}}
+@end itemize
+
+
@item
04_isosceles_c
+@itemize
+@item
+@file{Makefile} @uref{sample_triangle/04_isosceles_c/desc.txt, @file{desc.txt}} @uref{sample_triangle/04_isosceles_c/cmd.txt, @file{cmd}} @uref{sample_triangle/04_isosceles_c/0.txt, @file{0.txt}}
+@end itemize
+
@item
05_zero
+@itemize
+@item
+@file{Makefile} @uref{sample_triangle/05_zero/desc.txt, @file{desc.txt}} @uref{sample_triangle/05_zero/cmd.txt, @file{cmd}} @uref{sample_triangle/05_zero/0.txt, @file{0.txt}}
+@end itemize
+
@item
06_minus
+@itemize
+@item
+@file{Makefile} @uref{sample_triangle/06_minus/desc.txt, @file{desc.txt}} @uref{sample_triangle/06_minus/cmd.txt, @file{cmd}} @uref{sample_triangle/06_minus/0.txt, @file{0.txt}}
+@end itemize
+
+
@item
07_line
+@itemize
+@item
+@file{Makefile} @uref{sample_triangle/01_scalene/desc.txt, @file{desc.txt}} @uref{sample_triangle/01_scalene/cmd.txt, @file{cmd}} @uref{sample_triangle/01_scalene/0.txt, @file{0.txt}}
+@end itemize
+
@item
08_lines
+@itemize
+@item
+@file{Makefile} @uref{sample_triangle/08_lines/desc.txt, @file{desc.txt}} @uref{sample_triangle/08_lines/cmd.txt, @file{cmd}} @uref{sample_triangle/08_lines/0.txt, @file{0.txt}}
+@end itemize
+
@item
09_less
+@itemize
+@item
+@file{Makefile} @uref{sample_triangle/09_less/desc.txt, @file{desc.txt}} @uref{sample_triangle/09_less/cmd.txt, @file{cmd}} @uref{sample_triangle/09_less/0.txt, @file{0.txt}}
+@end itemize
+
@item
10_lesses
+@itemize
+@item
+@file{Makefile} @uref{sample_triangle/10_lesses/desc.txt, @file{desc.txt}} @uref{sample_triangle/10_lesses/cmd.txt, @file{cmd}} @uref{sample_triangle/10_lesses/0.txt, @file{0.txt}}
+@end itemize
+
@item
11_zeroall
+@itemize
+@item
+@file{Makefile} @uref{sample_triangle/11_zeroall/desc.txt, @file{desc.txt}} @uref{sample_triangle/11_zeroall/cmd.txt, @file{cmd}} @uref{sample_triangle/11_zeroall/0.txt, @file{0.txt}}
+@end itemize
+
@item
12_notint
+@itemize
+@item
+@file{Makefile} @uref{sample_triangle/12_notint/desc.txt, @file{desc.txt}} @uref{sample_triangle/12_notint/cmd.txt, @file{cmd}} @uref{sample_triangle/12_notint/0.txt, @file{0.txt}}
+@end itemize
+
@item
13_argcnt
+
+@itemize
+@item
+@file{Makefile} @uref{sample_triangle/13_argcnt/desc.txt, @file{desc.txt}} @uref{sample_triangle/13_argcnt/cmd.txt, @file{cmd}} @uref{sample_triangle/13_argcnt/0.txt, @file{0.txt}}
@end itemize
-こうしたディレクトリーやファイルは、Autotest.mkの@file{sample/triangle/test}以下にあるので、コピーして作成することもできます。
+@end itemize
テストグループディレクトリーでは、@kbd{make}または@kbd{make check}で複数のテストをまとめて実行できます。
@unnumberedsubsec バグを含む三角形判定プログラムの場合
-バグを含む三角形判定プログラムを準備してテストグループを実行した場合、次のように表示されます。
+バグを含む三角形判定プログラムを準備してテストグループを実行した場合、次のように表示されます。失敗したテストがあることをあらわしています。
@example
$ @kbd{cd ~/triangle/test}
@unnumberedsubsec バグを含む三角形判定プログラムの場合
-バグを含む三角形判定プログラムを準備してテストグループを実行した場合、@file{TEST.log}は次のように表示されます。
+バグを含む三角形判定プログラムを準備してテストグループを実行した場合、@file{TEST.log}は次のように表示されます。01_scaleneのほか、11_zeroのテストで失敗しています。すべての辺がゼロである場合に表示が正しくないバグがあることがわかります。
+
@example
01_scalene/
有効な不等辺三角形をあらわすテスト・ケース
@end example
-実際の開発では、こうした結果を元にプログラムの問題点を修正することになるでしょう。
+@node Template dir, Group dir, Tutorial, Top
+@chapter テンプレートディレクトリー マニュアル
-@node Manual, , Tutorial, Top
-@chapter Autotest.mkマニュアル
+テンプレートディレクトリーは、Autotest.mkをインストールするときに展開により作成された@file{template}ディレクトリーです。
@menu
-* Template Dir:: テンプレートディレクトリー
-* Group Dir:: グループディレクトリー
-* Test Dir:: テストディレクトリー
+* make group:: @kbd{make}または@kbd{make group} - グループディレクトリーの作成
+* Template Files:: テンプレートのファイル
@end menu
-@node Template Dir, Group Dir, Manual, Manual
-@section テンプレートディレクトリー
+@node make group, Template Files, Template dir, Template dir
+@section @kbd{make}または@kbd{make group} - グループディレクトリーの作成
-テンプレートディレクトリーは、Autotest.mkをインストールするときに展開により作成された@file{template}ディレクトリーです。このディレクトリーに移動すると次の操作ができます。
+変数@code{GROUPDIR}で指定されたディレクトリーをテストグループディレクトリーとして作成し、テストの実行に必要な次のファイルを配置します。
-@menu
-* make group:: @kbd{make}または@kbd{make group} - グループの作成
-* Template Files:: テンプレートのファイル
-@end menu
+@itemize
+@item
+@file{Define.mk}
+
+@item
+@file{Makefile}
+
+@item
+@file{Test.mk}
+@end itemize
-@node make group, Template Files, Template Dir, Template Dir
-@subsection @kbd{make}または@kbd{make group} - グループの作成
+配置のため、通常はファイルをコピーされます。変数@code{LINKMK}を指定した場合は、シンボリックリンクが作成されます。
-変数@code{GROUPDIR}で指定されたディレクトリーをテストグループディレクトリーとして作成し、必要なファイルを配置します。
+@subsection 変数
+
+@table @code
+@item GROUPDIR
+テストディレクトリーを指定します。指定しない場合や既存のディレクトリーを指定した場合は、エラーが発生してテストグループディレクトリーは作成されません。
+
+@item LINKMK
+指定した場合、グループディレクトリーにテストの実行に必要なファイルのシンボリックリンクが作成されます。値は任意です。
+
+シンボリックリンクのリンク先は、テンプレートディレクトリーの中です。指定しない場合、テストに必要なファイルはテンプレートディレクトリーからコピーされます。
+@end table
-@unnumberedsubsubsec 使用例
+@unnumberedsubsec 使用例
グループディレクトリーとして@file{~/triangle/test}を作成します。
$ @kbd{make GROUPDIR=~/triangle/test}
@end example
-@node Template Files, , make group, Template Dir
-@subsection テンプレートのファイル
+@node Template Files, , make group, Template dir
+@section テンプレートのファイル
テンプレートディレクトリーには、次のファイルが含まれます。
@table @file
@item Define.mk
テストとテストグループに関する項目を定義したMakefile。@kbd{make}または@kbd{make group}で、グループディレクトリーに配置されます。
-
-@item Define_group.mk
-テストグループに関する項目を定義したMakefile。@kbd{make}または@kbd{make group}で、グループディレクトリーに配置されます。
-
-@item Define.mk
-テストに関する項目を定義したMakefile。@kbd{make}または@kbd{make group}で、グループディレクトリーに配置されます。
@end table
-@node Group Dir, Test Dir, Template Dir, Manual
-@section グループディレクトリー
+@node Group dir, Test dir, Template dir, Top
+@chapter グループディレクトリー マニュアル
-@ref{make group, , グループの作成}後、グループディレクトリーに移動すると次の操作ができます。
+@ref{make group, , ã\82°ã\83«ã\83¼ã\83\97ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\83¼ã\81®ä½\9cæ\88\90}å¾\8cã\80\81ã\82°ã\83«ã\83¼ã\83\97ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\83¼ã\81«ç§»å\8b\95ã\81\99ã\82\8bã\81¨æ¬¡ã\81®æ\93\8dä½\9cã\81\8cã\81§ã\81\8dã\81¾ã\81\99ã\80\82
@menu
* make create:: @kbd{make create} - テストの作成
-* Rename:: テスト名の変更
+* Rename and Copy:: テスト名の変更とコピー
* Delete:: テストの削除
* make check at group:: @kbd{make}または@kbd{make check} - テストグループの実行
* make checkall:: @kbd{make checkall} - グループ内にあるすべてのテストの実行、計時
* Group Files:: グループのファイル
@end menu
-@node make create, Rename, Group Dir, Group Dir
-@subsection @kbd{make create} - テストの作成
+@node make create, Rename and Copy, Group dir, Group dir
+@section @kbd{make create} - テストの作成
変数@code{TEST}で指定されたディレクトリーをテストディレクトリーとして作成し、必要なファイルを配置します。
テスト名は、小文字のアルファベットと数字で指定します。大文字ではじまる名前を指定した場合、テストディレクトリーとして扱われません。
-@unnumberedsubsubsec 使用例
+@unnumberedsubsec 使用例
テストディレクトリーを、@code{01_scalene}という名前で作成します。
$ @kbd{make create TEST=01_scalene}
@end example
-@node Rename, Delete, make create, Group Dir
-@subsection テスト名の変更とコピー
+@node Rename and Copy, Delete, make create, Group dir
+@section テスト名の変更とコピー
-ã\83\86ã\82¹ã\83\88å\90\8dã\82\92å¤\89æ\9b´ã\81\99ã\82\8bå ´å\90\88ã\81¯ã\80\81@code{mv}ã\82³ã\83\9eã\83³ã\83\89ã\82\92使ã\81\84ã\81¾ã\81\99ã\80\82ã\81¾ã\81\9fã\80\81@code{cp}ã\82³ã\83\9eã\83³ã\83\89ã\82\92使ã\81£ã\81¦ã\83\86ã\82¹ã\83\88ã\82\92ã\82³ã\83\94ã\83¼ã\81\99ã\82\8bã\81\93ã\81¨ã\82\82ã\81§ã\81\8dます。
+ã\83\86ã\82¹ã\83\88å\90\8dã\82\92å¤\89æ\9b´ã\81\97ã\81\9fã\82\8aã\83\86ã\82¹ã\83\88ã\82\92ã\82³ã\83\94ã\83¼ã\81\97ã\81\9fã\82\8aã\81\99ã\82\8bå ´å\90\88ã\81¯ã\80\81@kbd{mv}ã\82\84@kbd{cp}ã\81ªã\81©ã\81§ã\83\86ã\82¹ã\83\88ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\83¼ã\82\92移å\8b\95ã\80\81ã\82³ã\83\94ã\83¼ã\81\97ます。
-@unnumberedsubsubsec 使用例
+@unnumberedsubsec 使用例
+テスト名@code{01_scalene}を@code{01}に変更します。
@example
$ @kbd{mv 01_scalene 01}
+@end example
+
+テスト@code{01}をコピーし、テスト@code{02}を作成します。
+
+@example
$ @kbd{cp -r 01 02}
@end example
-@node Delete, make check at group, Rename, Group Dir
-@subsection テストの削除
+@node Delete, make check at group, Rename and Copy, Group dir
+@section テストの削除
-テストを削除する場合は、@code{rm}コマンドを使います。
+テストを削除する場合は、@kbd{rm}などでテストディレクトリーを削除します。
-@unnumberedsubsubsec 使用例
+@unnumberedsubsec 使用例
@example
$ @kbd{rm -rf 01_scalene}
@end example
-@node make check at group, make checkall, Delete, Group Dir
-@subsection @kbd{make}または@kbd{make check} - テストグループの実行
+@node make check at group, make checkall, Delete, Group dir
+@section @kbd{make}または@kbd{make check} - テストグループの実行
@kbd{make}または@kbd{make check}で、グループ内にあるすべての@ref{make check at test, , テストの実行}をし、次の項目を表示します。
テスト実行結果の概要を表します。テストグループ実行時に表示される内容です。
@end table
-@unnumberedsubsubsec 使用例
+@unnumberedsubsec 使用例
@example
$ @kbd{make}
test: All tests are succeded.
@end example
-@node make checkall, make clean at group, make check at group, Group Dir
-@subsection @kbd{make checkall} - グループ内にあるすべてのテストの実行、計時
+@node make checkall, make clean at group, make check at group, Group dir
+@section @kbd{make checkall} - グループ内にあるすべてのテストの実行、計時
-@kbd{make checkall}でグループ内にあるすべてのテストを、@ref{make check at test, , 実行}し、@ref{make time at test, , 計時}します。@ref{make check at group, , テストの実行}と同じ項目を表示し、出力されるファイルの種類も同じです。@code{<テストグループ名を大文字にした文字列>.log}には、テストと実行結果に加え、計時結果が一覧として出力されます。
+@kbd{make checkall}ã\81§ã\82°ã\83«ã\83¼ã\83\97å\86\85ã\81«ã\81\82ã\82\8bã\81\99ã\81¹ã\81¦ã\81®ã\83\86ã\82¹ã\83\88ã\82\92ã\80\81@ref{make check at test, , å®\9fè¡\8c}ã\81\97ã\80\81@ref{make time at test, , è¨\88æ\99\82}ã\81\97ã\81¾ã\81\99ã\80\82@ref{make check at group, , ã\83\86ã\82¹ã\83\88ã\82°ã\83«ã\83¼ã\83\97ã\81®å®\9fè¡\8c}ã\81¨å\90\8cã\81\98é \85ç\9b®ã\82\92表示ã\81\97ã\80\81å\87ºå\8a\9bã\81\95ã\82\8cã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\81®ç¨®é¡\9eã\82\82å\90\8cã\81\98ã\81§ã\81\99ã\80\82@code{<ã\83\86ã\82¹ã\83\88ã\82°ã\83«ã\83¼ã\83\97å\90\8dã\82\92大æ\96\87å\97ã\81«ã\81\97ã\81\9fæ\96\87å\97å\88\97>.log}ã\81«ã\81¯ã\80\81ã\83\86ã\82¹ã\83\88ã\81¨å®\9fè¡\8cçµ\90æ\9e\9cã\81«å\8a ã\81\88ã\80\81è¨\88æ\99\82çµ\90æ\9e\9cã\81\8cä¸\80覧ã\81¨ã\81\97ã\81¦å\87ºå\8a\9bã\81\95ã\82\8cã\81¾ã\81\99ã\80\82
-テストの計時と実行は別に行われるため、通常にテストを実行するよりも2倍程度の時間がかかります。
+テストの実行と計時は別に行われるため、通常にテストを実行するよりも2倍程度の時間がかかります。
-@unnumberedsubsubsec 使用例
+@unnumberedsubsec 使用例
@example
$ @kbd{make checkall}
test: All tests are succeded.
@end example
-@node make clean at group, make time at group, make checkall, Group Dir
-@subsection @kbd{make clean} - グループの実行結果をクリア
+@node make clean at group, make time at group, make checkall, Group dir
+@section @kbd{make clean} - グループの実行結果をクリア
-@kbd{make clean}で、@kbd{make}、@kbd{make check}、@kbd{make checkall}により作成されたテストグループと各テストのファイルをすべて削除します。
+@kbd{make clean}で、@ref{make check at group, , @kbd{make}または@kbd{make check}}や@ref{make checkall, ,@kbd{make checkall}}により作成されたファイルをすべて削除します。グループディレクトリーのほか、テストディレクトリーのファイルも削除されます。
-@unnumberedsubsubsec 使用例
+@unnumberedsubsec 使用例
@example
$ @kbd{cd ~/triangle/test}
$ @kbd{make clean}
@end example
-@node make time at group, make cleantime at group, make clean at group, Group Dir
-@subsection @kbd{make time} - グループ内にあるすべてのテストを計時
+@node make time at group, make cleantime at group, make clean at group, Group dir
+@section @kbd{make time} - グループ内にあるすべてのテストを計時
@kbd{make time}で、グループ内にあるすべてのテストを計時し、その結果が表示されます。計時結果は、@file{<テストグループ名を大文字にした文字列>_time.log}に格納されます。
-@unnumberedsubsubsec 使用例
+@unnumberedsubsec 使用例
@example
$ @kbd{make time}
real 0m0.012s
@end example
-@node make cleantime at group, Group Files, make time at group, Group Dir
-@subsection @kbd{make cleantime} - グループの計時結果をクリア
+@node make cleantime at group, Group Files, make time at group, Group dir
+@section @kbd{make cleantime} - グループの計時結果をクリア
-@kbd{make cleatime}ã\81§ã\80\81@kbd{make time}ã\81«ã\82\88ã\82\8aä½\9cæ\88\90ã\81\95ã\82\8cã\81\9fã\83\86ã\82¹ã\83\88ã\82°ã\83«ã\83¼ã\83\97ã\81¨å\90\84ã\83\86ã\82¹ã\83\88のファイルをすべて削除します。
+@kbd{make cleatime}ã\81§ã\80\81@kbd{make time}ã\81«ã\82\88ã\82\8aä½\9cæ\88\90ã\81\95ã\82\8cã\81\9fã\83\86ã\82¹ã\83\88ã\82°ã\83«ã\83¼ã\83\97ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\83¼ã\81¨å\90\84ã\83\86ã\82¹ã\83\88ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\83¼のファイルをすべて削除します。
-@node Group Files, , make cleantime at group, Group Dir
-@subsection グループのファイル
+@node Group Files, , make cleantime at group, Group dir
+@section グループディレクトリーのファイル
グループディレクトリーには、テストディレクトリーに加えて、次のファイルが含まれます。
@item Define.mk
テストとテストグループに関する項目を定義したMakefile
-@item Define_group.mk
-テストグループに関する項目を定義したMakefile
-
-@item Define.mk
-テストに関する項目を定義したMakefile
-
@item <テストグループ名を大文字にした文字列>.log
-@ref{make check at group, , @kbd{make}ã\82\84@kbd{make check}}ã\81¾ã\81\9fã\81¯@ref{make checkall, , @kbd{make checkall}}を実行したときに作成されます。@kbd{make}や@kbd{make check}の場合は、テストグループに含まれるテストと実行結果の一覧です。@kbd{make checkall}の場合は、テストと実行結果と計時結果の一覧です。
+@ref{make check at group, , @kbd{make}ã\81¾ã\81\9fã\81¯@kbd{make check}}ã\82\84@ref{make checkall, , @kbd{make checkall}}を実行したときに作成されます。@kbd{make}や@kbd{make check}の場合は、テストグループに含まれるテストと実行結果の一覧です。@kbd{make checkall}の場合は、テストと実行結果と計時結果の一覧です。
@item Summary.log
-テスト実行結果の概要です。@ref{make check at group, , @kbd{make}や@kbd{make check}}または@ref{make checkall, , @kbd{make checkall}}を実行すると作成され、その内容が表示されます。
-
+テスト実行結果の概要です。@ref{make check at group, , @kbd{make}または@kbd{make check}}や@ref{make checkall, , @kbd{make checkall}}を実行すると作成され、その内容が表示されます。
@end table
-@node Test Dir, , Group Dir, Manual
-@section テストディレクトリー
+@node Test dir, , Group dir, Top
+@chapter テストディレクトリー マニュアル
@menu
* make set:: @kbd{make set} - テスト想定の作成
-* make reset:: @kbd{make set} - テスト想定の再作成
+* make reset:: @kbd{make reset} - テスト想定の作成または更新
* make check at test:: @kbd{make}または@kbd{make check} - テストの実行
* make time at test:: @kbd{make time} - テストの計時
* make cleantime at test:: @kbd{make cleantime} - テスト計時結果のクリア
-* make clean at test:: @kbd{make cleantime} - テスト結果のクリア
+* make clean at test:: @kbd{make clean} - テスト結果のクリア
* make cleanall at test:: @kbd{make cleanall} - テストの想定と結果をクリア
-* Test Files:: テストのファイル
+* Test Files:: ã\83\86ã\82¹ã\83\88ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\83¼ã\81®ã\83\95ã\82¡ã\82¤ã\83«
@end menu
-@node make set, make reset, Test Dir, Test Dir
-@subsection @kbd{make set} - テスト想定の作成
+@node make set, make reset, Test dir, Test dir
+@section @kbd{make set} - テスト想定の作成
+@kbd{make set}で、テストコマンド@file{cmd}が実行され、テスト想定ファイル@file{0.txt}が作成されます。また、実行時に@file{0.txt}の内容が表示されます。@file{0.txt}がすでにある場合は、エラーが発生して@file{0.txt}は更新されません。
+
+@unnumberedsubsec 使用例
+@example
+$ @kbd{make set}
+scalene triangle
+@end example
-@node make reset, make check at test, make set, Test Dir
-@subsection @kbd{make set} - テスト想定の再作成
+@node make reset, make check at test, make set, Test dir
+@section @kbd{make reset} - テスト想定の作成または更新
+@kbd{make reset}で、テストコマンド@file{cmd}が実行され、テスト想定ファイル@file{0.txt}を作成されます。また、実行時に@file{0.txt}の内容が表示されます。@file{0.txt}がすでにある場合、@file{0.txt}が更新されます。
-@node make check at test, make time at test, make reset, Test Dir
-@subsection @kbd{make}または@kbd{make check} - テストの実行
+@unnumberedsubsec 使用例
+@example
+$ @kbd{make reset}
+scalene triangle
+@end example
-@node make time at test, make cleantime at test, make check at test, Test Dir
-@subsection @kbd{make time} - テストの計時
+@node make check at test, make time at test, make reset, Test dir
+@section @kbd{make}または@kbd{make check} - テストの実行
+@kbd{make}または@kbd{make check}で、テストコマンド@file{cmd}が実行され、テスト結果ファイル@file{1.txt}が作成されます。また、実行時にテストの結果をあらわす次の項目が表示されます。
-@node make cleantime at test, make clean at test, make time at test, Test Dir
-@subsection @kbd{make cleantime} - テスト計時結果のクリア
+@itemize
+@item
+<テスト説明ファイル@file{desc.txt}の内容>
-@node make clean at test, make cleanall at test, make cleantime at test, Test Dir
-@subsection @kbd{make cleantime} - テスト結果のクリア
+@item
+<テスト名>: <テスト結果(Test SuccessまたはTest Failure)> <テスト実行日時>
-@node make cleanall at test, Test Files, make clean at test, Test Dir
-@subsection @kbd{make cleanall} - テストの想定と結果をクリア
+@item
+Detail in <テスト詳細ログファイルの絶対パス>
+@end itemize
-@node Test Files, , make cleanall at test, Test Dir
-@subsection テストのファイル
+@unnumberedsubsec 使用例
+@example
+$ @kbd{make}
+有効な不等辺三角形をあらわすテスト・ケース
+01_scalene: Test Success 2011-01-10 10:09:55
+Detail in /home/foo/triangle/test/01_scalene/detail.log
+@end example
+
+@node make clean at test, make cleanall at test, make cleantime at test, Test dir
+@section @kbd{make clean} - テスト結果のクリア
+@kbd{make clean}で、テストの実行または計時の結果作成された次のファイルが削除されます。
+
+@itemize
+@item
+@file{1.txt}
+
+@item
+@file{diff.log}
+
+@item
+@file{err.log}
+
+@item
+@file{summary.log}
+
+@item
+@file{time.log}
+@end itemize
+
+@unnumberedsubsec 使用例
+@example
+$ @kbd{make clean}
+$ @kbd{ls}
+0.txt Makefile cmd desc.txt
+@end example
+
+@node make cleanall at test, Test Files, make clean at test, Test dir
+@section @kbd{make cleanall} - テストの想定と結果をクリア
+@kbd{make clean}で次の、テストの想定ファイルとテストの実行または計時の結果作成されたファイルが削除されます。
+
+@itemize
+@item
+@file{0.txt}
+
+@item
+@file{1.txt}
+
+@item
+@file{diff.log}
+
+@item
+@file{err.log}
+
+@item
+@file{summary.log}
+
+@item
+@file{time.log}
+@end itemize
+
+@unnumberedsubsec 使用例
+@example
+$ @kbd{make cleanall}
+$ @kbd{ls}
+Makefile cmd desc.txt
+@end example
+
+
+@node make time at test, make cleantime at test, make check at test, Test dir
+@section @kbd{make time} - テストの計時
+@kbd{make time}で、テストを計時しその結果が表示されます。計時結果は、@file{time.log}に格納されます。
+
+@unnumberedsubsec 使用例
+@example
+$ @kbd{make time}
+real 0m0.006s
+@end example
+
+@node make cleantime at test, make clean at test, make time at test, Test dir
+@section @kbd{make cleantime} - テスト計時結果のクリア
+@kbd{make clean}で、テストの計時の結果作成された次のファイルが削除されます。
+
+@itemize
+@item
+@file{time.log}
+@end itemize
+
+@node Test Files, , make cleanall at test, Test dir
+@section テストディレクトリーのファイル
+@table @file
+@item Makefile
+テストディレクトリーのMakefile
+
+@item cmd
+テスト時に実行されるコマンドをあらわすテストコマンドファイル。手動で作成します。
+
+@item desc.txt
+テストに関する説明をあらわし、テストの結果と一緒にログに出力されます。手動で作成します。
+
+@item 0.txt
+テストが正しく実行された場合の結果をあらわすテスト想定ファイル。エラー発生時は、標準出力のあとにエラー出力を続けます。手動か、@kbd{make set}か、@kbd{make reset}で作成します。
+
+@item 1.txt
+テスト結果をあらわします。エラー発生時は、標準出力のあとにエラー出力が続きます。@kbd{make}または@kbd{make check}で作成されます。
+
+@item diff.log
+テストの想定と結果の差分をあらわす差分ファイル。@kbd{make}または@kbd{make check}でテストを実行した結果、想定と差分が異なる場合に作成されます。想定と結果が同じ場合は作成されません。
+
+@item err.log
+テストのエラー出力をあらわすエラーファイル。@kbd{make}または@kbd{make check}でテストを実行した結果、エラー出力がある場合に作成されます。なお、エラー出力は@file{1.txt}にも含まれます。
+
+@item summary.log
+テスト実行結果の概要です。@kbd{make}または@kbd{make check}で作成され、その内容が表示されます。
+
+@item detail.log
+テスト実行結果の詳細です。@file{summary.log} @file{cmd} @file{0.txt} @file{err.log} @file{diff.log} @file{1.txt}の内容がコピーされます。@kbd{make}または@kbd{make check}で作成されます。
+@end table
@bye