<link title="Top" rel="top" href="#Top">
<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
<!--
-Copyright (C) 2010 j8takagi-->
+Copyright (C) 2011 j8takagi-->
<meta http-equiv="Content-Style-Type" content="text/css">
<style type="text/css"><!--
pre.display { font-family:inherit }
.node{
margin-left: -3em;
+ color: inherit;
+ background-color: #DDF;
+}
+
+.menu, .node {
+ color: inherit;
+ background-color: #DDF;
}
h2 {
<ul>
<li><a name="toc_About" href="#About">1 Autotest.mk 概要</a>
<ul>
-<li><a href="#About">要件</a>
+<li><a href="#About">1.1 特徴</a>
</li></ul>
<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><a href="#Requirements">2.1 要件</a>
+<li><a href="#Download">2.2 ダウンロード</a>
+<li><a href="#Verify">2.3 検証</a>
+<li><a href="#Expand">2.4 展開</a>
+<li><a href="#Dir">2.5 ディレクトリー</a>
</li></ul>
<li><a name="toc_Tutorial" href="#Tutorial">3 Autotest.mk チュートリアル - 三角形判定プログラムのテスト</a>
<ul>
<ul>
<li><a href="#Check-Group-Log">バグを含む三角形判定プログラムの場合</a>
</li></ul>
+<li><a href="#Associate">3.10 ビルドとの連携</a>
</li></ul>
<li><a name="toc_Template-dir" href="#Template-dir">4 テンプレートディレクトリー マニュアル</a>
<ul>
<p>Autotest.mkは、GNU Makeを利用したソフトウェアテスト自動化ツールです。何回か<kbd>make</kbd>コマンドを実行し、コマンドファイルとテスト結果の想定をあらわすファイルを作成すれば、テストの準備は完了です。あとは<kbd>make</kbd>コマンドを1回実行すれば、テストを実行できます。テストが実行されると、詳細なログが出力されます。
- <p>Autotest.mkでは、次の3つのディレクトリーを使います。
-
- <dl>
-<dt><samp><span class="option">テンプレートディレクトリー</span></samp><dd>テストグループとテストのテンプレートとなるディレクトリー
+<h3 class="section">1.1 特徴</h3>
- <br><dt><samp><span class="option">テストグループディレクトリー</span></samp><dd>1つまたは複数のテストを含むディレクトリー
+<p>Autotest.mkの特徴は次のとおりです。
- <br><dt><samp><span class="option">テストディレクトリー</span></samp><dd>テスト実行のためのファイルと、実行結果をあらわすファイルを含むディレクトリー
-</dl>
+ <ul>
+<li>使い方がシンプル
-<h3 class="unnumberedsec">要件</h3>
+ <li>さまざまなプログラムや環境に対応
-<p>Autotest.mkは、LinuxやMac OS Xなどで動作します。現在動作を確認しているのは、次のディストリビューションです。
+ <li>ビルド作業と連携しやすい
- <ul>
-<li>Ubuntu Linux 10.10
-
- <li>Mac OS X バージョン 10.6.5
+ <li>無償で使うことができ、自由に改造できる
</ul>
- <p>Mac OS Xでは、<a href="http://www.gnu.org/software/findutils/">GNU Findutils</a>をインストールしてください。
-
<div class="node">
<a name="Install"></a>
<p><hr>
<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>: ファイルの展開
+<li><a accesskey="1" href="#Requirements">Requirements</a>: 要件
+<li><a accesskey="2" href="#Download">Download</a>: ダウンロード
+<li><a accesskey="3" href="#Verify">Verify</a>: 検証
+<li><a accesskey="4" href="#Expand">Expand</a>: 展開
+<li><a accesskey="5" href="#Dir">Dir</a>: ディレクトリー
</ul>
-<p>Autotest.mkをインストールするには、次の作業をします。
-
- <ol type=1 start=1>
-<li>Autotest.mkファイルのダウンロード
-
- <li>Autotest.mkファイルの展開
- </ol>
-
<div class="node">
-<a name="Download"></a>
+<a name="Requirements"></a>
<p><hr>
-Next: <a rel="next" accesskey="n" href="#Verify">Verify</a>,
+Next: <a rel="next" accesskey="n" href="#Download">Download</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>
+<h3 class="section">2.1 要件</h3>
-<p>次の場所から最新版の<samp><span class="file">tar.gz</span></samp>ファイルをダウンロードします。
+<p>Autotest.mkは、LinuxやMac OS Xなどで動作します。現在動作を確認しているのは、次のディストリビューションです。
<ul>
-<li><a href="autotest_mk.tar.gz">autotest_mk.tar.gz</a> - Autotest.mkのファイル一式を<samp><span class="file">tar.gz</span></samp>形式で圧縮したもの
+<li>Ubuntu Linux 10.10
- <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>で作成
+ <li>Mac OS X バージョン 10.6.5
</ul>
- <p>または、<a href="http://github.com/j8takagi/Autotest.mk/downloads/">githubのダウンロードページ</a>からダウンロードします。
+ <p>Mac OS Xでは、<a href="http://www.gnu.org/software/findutils/">GNU Findutils</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="#Requirements">Requirements</a>,
+Up: <a rel="up" accesskey="u" href="#Install">Install</a>
+
+</div>
+
+<h3 class="section">2.2 ダウンロード</h3>
+
+<p><a href="http://www.j8takagi.net/autotest_mk/">Autotest_mkのサイト</a>または<a href="http://github.com/j8takagi/Autotest.mk/downloads/">githubのダウンロードページ</a>から最新版の<samp><span class="file">tar.gz</span></samp>ファイルをダウンロードします。
<div class="node">
<a name="Verify"></a>
</div>
-<h3 class="section">2.2 Autotest.mkファイルの検証</h3>
+<h3 class="section">2.3 検証</h3>
<p>ダウンロードが完了したら、<kbd>openssl</kbd>と<kbd>diff</kbd>で正しくファイルがダウンロードができているかを検証します。
<div class="node">
<a name="Expand"></a>
<p><hr>
+Next: <a rel="next" accesskey="n" href="#Dir">Dir</a>,
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>
+<h3 class="section">2.4 展開</h3>
<p><samp><span class="file">autotest_mk</span></samp>ファイルをダウンロードしたら、展開先のディレクトリーに移動してから、展開します。
次のコマンドでは、現在ログインしているユーザーのホームディレクトリーに展開します。
</pre>
<p>展開したら、Autotest.mkは使えるようになります。多くのプログラムをインストールするときに必要なコンパイルやビルド、システムディレクトリーへのインストール(<kbd>./configure</kbd>や<kbd>make</kbd>、<kbd>make install</kbd>)は必要ありません。
+<div class="node">
+<a name="Dir"></a>
+<p><hr>
+Previous: <a rel="previous" accesskey="p" href="#Expand">Expand</a>,
+Up: <a rel="up" accesskey="u" href="#Install">Install</a>
+
+</div>
+
+<h3 class="section">2.5 ディレクトリー</h3>
+
+<p>Autotest.mkでテストを実行するときは、次の3つのディレクトリーを使います。
+
+ <dl>
+<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>テスト実行のためのファイルと、実行結果をあらわすファイルを含むディレクトリー
+</dl>
+
<div class="node">
<a name="Tutorial"></a>
<p><hr>
<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>: テストグループログファイルの確認
+<li><a href="#Associate">Associate</a>: ビルドとの連携
</ul>
<div class="node">
<li>1辺の長さが他の2辺の長さの和に等しいことを3種類の順列のすべてに対してためすことのできるテスト・ケース
- <li>ゼロより大きな3つの整数のうち、2つの数の和がそれ以外の1つの数より小さくなるテストケース
+ <li>ã\82¼ã\83ã\82\88ã\82\8a大ã\81\8dã\81ª3ã\81¤ã\81®æ\95´æ\95°ã\81®ã\81\86ã\81¡ã\80\812ã\81¤ã\81®æ\95°ã\81®å\92\8cã\81\8cã\81\9dã\82\8c以å¤\96ã\81®1ã\81¤ã\81®æ\95°ã\82\88ã\82\8aå°\8fã\81\95ã\81\8fã\81ªã\82\8bã\83\86ã\82¹ã\83\88ã\83»ã\82±ã\83¼ã\82¹
- <li>ゼロより大きな3つの整数のうち、2つの数の和がそれ以外の1つの数より小さくなることにおいて、3種類の順列すべてを考慮することのできるテストケース
+ <li>ã\82¼ã\83ã\82\88ã\82\8a大ã\81\8dã\81ª3ã\81¤ã\81®æ\95´æ\95°ã\81®ã\81\86ã\81¡ã\80\812ã\81¤ã\81®æ\95°ã\81®å\92\8cã\81\8cã\81\9dã\82\8c以å¤\96ã\81®1ã\81¤ã\81®æ\95°ã\82\88ã\82\8aå°\8fã\81\95ã\81\8fã\81ªã\82\8bã\81\93ã\81¨ã\81«ã\81\8aã\81\84ã\81¦ã\80\813種é¡\9eã\81®é \86å\88\97ã\81\99ã\81¹ã\81¦ã\82\92è\80\83æ\85®ã\81\99ã\82\8bã\81\93ã\81¨ã\81®ã\81§ã\81\8dã\82\8bã\83\86ã\82¹ã\83\88ã\83»ã\82±ã\83¼ã\82¹
<li>すべての辺がゼロであるテスト・ケース
Detail in /home/foo/triangle/test/01_scalene/detail.log
</pre>
<p>表示される項目は、次のとおりです。
+
<ul>
<li><テスト説明ファイル<samp><span class="file">desc.txt</span></samp>の内容>
<h3 class="section">3.7 テストログファイルの確認</h3>
<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>
<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>
-
- </ul>
+ </ul>
<p>テストグループディレクトリーでは、<kbd>make</kbd>または<kbd>make check</kbd>で複数のテストをまとめて実行できます。
<div class="node">
<a name="Check-Group-Log"></a>
<p><hr>
+Next: <a rel="next" accesskey="n" href="#Associate">Associate</a>,
Previous: <a rel="previous" accesskey="p" href="#Group-Execute">Group Execute</a>,
Up: <a rel="up" accesskey="u" href="#Tutorial">Tutorial</a>
</pre>
<div class="node">
+<a name="Associate"></a>
+<p><hr>
+Previous: <a rel="previous" accesskey="p" href="#Check-Group-Log">Check Group Log</a>,
+Up: <a rel="up" accesskey="u" href="#Tutorial">Tutorial</a>
+
+</div>
+
+<h3 class="section">3.10 ビルドとの連携</h3>
+
+<p>三角形判定プログラムでは、<samp><span class="file">~/triangle</span></samp>など作業用ディレクトリーのトップで<kbd>make</kbd>を実行すればプログラムをビルドできました。作業用ディレクトリーの<samp><span class="file">Makefile</span></samp>を次のように編集すると、ビルドと連携してテストを実行できるようになります。
+
+<pre class="example"> CC = gcc
+
+ .PHONY: all <kbd>check</kbd> clean
+
+ all:
+ $(CC) -o triangle triangle.c
+
+ <kbd>check:</kbd>
+ <kbd> $(MAKE) -c test</kbd>
+
+ clean:
+ rm -f triangle
+</pre>
+ <p>ビルドとテストは、次のように実行します。
+
+<pre class="example"> $ <kbd>make</kbd>
+ gcc -o triangle triangle.c
+ $ <kbd>make check</kbd>
+ make -C test
+ test: 13 / 13 tests passed. Detail in /Users/kazubito/2011_01/triangle/test/TEST.log
+ test: All tests are succeded.
+</pre>
+ <p>こうした設定をしておけば、プログラムを変更するたびに簡単にビルドとテストを実行することができます。
+
+<div class="node">
<a name="Template-dir"></a>
<p><hr>
Next: <a rel="next" accesskey="n" href="#Group-dir">Group dir</a>,
<li><samp><span class="file">Test.mk</span></samp>
</ul>
- <p>é\85\8dç½®ã\81®ã\81\9fã\82\81ã\80\81é\80\9a常ã\81¯ã\83\95ã\82¡ã\82¤ã\83«ã\82\92コピーされます。変数<code>LINKMK</code>を指定した場合は、シンボリックリンクが作成されます。
+ <p>é\80\9a常ã\80\81ã\83\86ã\82¹ã\83\88ã\81«å¿\85è¦\81ã\81ªã\83\95ã\82¡ã\82¤ã\83«ã\83\86ã\83³ã\83\97ã\83¬ã\83¼ã\83\88ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\83¼ã\81\8bã\82\89ã\82°ã\83«ã\83¼ã\83\97ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\83¼ã\81«コピーされます。変数<code>LINKMK</code>を指定した場合は、シンボリックリンクが作成されます。
<h4 class="subsection">4.1.1 変数</h4>
<dl>
<dt><code>GROUPDIR</code><dd>テストディレクトリーを指定します。指定しない場合や既存のディレクトリーを指定した場合は、エラーが発生してテストグループディレクトリーは作成されません。
- <br><dt><code>LINKMK</code><dd>指定した場合、グループディレクトリーにテストの実行に必要なファイルのシンボリックリンクが作成されます。値は任意です。
-
- <p>シンボリックリンクのリンク先は、テンプレートディレクトリーの中です。指定しない場合、テストに必要なファイルはテンプレートディレクトリーからコピーされます。
+ <br><dt><code>LINKMK</code><dd>指定した場合、グループディレクトリーにテストの実行に必要なファイルのシンボリックリンクが作成されます。値は任意です。シンボリックリンクのリンク先は、テンプレートディレクトリーの中です。
</dl>
<h4 class="unnumberedsubsec">使用例</h4>
<h3 class="section">5.1 <kbd>make create</kbd> - テストの作成</h3>
-<p>変数<code>TEST</code>で指定されたディレクトリーをテストディレクトリーとして作成し、必要なファイルを配置します。
-テスト名は、小文字のアルファベットと数字で指定します。大文字ではじまる名前を指定した場合、テストディレクトリーとして扱われません。
+<p>変数<code>TEST</code>で指定されたディレクトリーをテストディレクトリーとして作成し、ディレクトリーの中に<code>Makefile</code>を作成します。
+
+ <p>テスト名は、小文字のアルファベットと数字で指定します。大文字ではじまる名前を指定した場合、ディレクトリーや<code>Makefile</code>は作成されるものの、テストグループ実行の対象になりません。
+
+ <p>変数<code>SRC=c</code>を指定した場合は、C言語の関数テスト用の<code>Makefile</code>が作成されます。
<h4 class="unnumberedsubsec">使用例</h4>
<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="4" href="#make-clean-at-test">make clean at test</a>: <kbd>make clean</kbd> - テスト結果のクリア
+<li><a accesskey="5" href="#make-cleanall-at-test">make cleanall at test</a>: <kbd>make cleanall</kbd> - テストの想定と結果をクリア
+<li><a accesskey="6" href="#make-time-at-test">make time at test</a>: <kbd>make time</kbd> - テストの計時
+<li><a accesskey="7" href="#make-cleantime-at-test">make cleantime at test</a>: <kbd>make cleantime</kbd> - テスト計時結果のクリア
<li><a accesskey="8" href="#Test-Files">Test Files</a>: テストディレクトリーのファイル
</ul>
<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>,
+Next: <a rel="next" accesskey="n" href="#make-clean-at-test">make clean 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>
<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>,
+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>
<div class="node">
<a name="make-cleanall-at-test"></a>
<p><hr>
-Next: <a rel="next" accesskey="n" href="#Test-Files">Test Files</a>,
+Next: <a rel="next" accesskey="n" href="#make-time-at-test">make time at test</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>
<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>,
+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>
<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>,
+Next: <a rel="next" accesskey="n" href="#Test-Files">Test Files</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>
<h3 class="section">6.7 <kbd>make cleantime</kbd> - テスト計時結果のクリア</h3>
-<p><kbd>make clean</kbd>で、テストの計時の結果作成された次のファイルが削除されます。
+<p><kbd>make cleantime</kbd>で、テストの計時の結果作成された次のファイルが削除されます。
<ul>
<li><samp><span class="file">time.log</span></samp>
<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>,
+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>
</div>
@c %**end of header
@copying
-Copyright @copyright{} 2010 j8takagi
+Copyright @copyright{} 2011 j8takagi
@end copying
@exampleindent 2
Autotest.mk インストール
+* Requirements:: 要件
* Download:: ダウンロード
-* Verify:: Autotest.mkファイルの検証
-* Expand:: ファイルの展開
+* Verify:: 検証
+* Expand:: 展開
+* Dir:: ディレクトリー
Autotest.mk チュートリアル - 三角形判定プログラムのテスト
* Check Test Log:: テストログファイルの確認
* Group Execute:: テストグループの実行
* Check Group Log:: テストグループログファイルの確認
+* Associate:: ビルドとの連携
テンプレートディレクトリー マニュアル
グループディレクトリー マニュアル
* make create:: @kbd{make create} - テストの作成
-* Rename and Copy:: テスト名の変更とコピー
+* Rename and Copy:: テスト名の変更とコピー
* Delete:: テストの削除
* make check at group:: @kbd{make}または@kbd{make check} - テストグループの実行
* make checkall:: @kbd{make checkall} - グループ内にあるすべてのテストの実行、計時
* make set:: @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 clean} - テスト結果のクリア
* make cleanall at test:: @kbd{make cleanall} - テストの想定と結果をクリア
+* make time at test:: @kbd{make time} - テストの計時
+* make cleantime at test:: @kbd{make cleantime} - テスト計時結果のクリア
* Test Files:: テストディレクトリーのファイル
+
@end detailmenu
@end ifinfo
-
@end menu
@contents
@node About, Install, Top, Top
@chapter Autotest.mk 概要
-
Autotest.mkは、GNU Makeを利用したソフトウェアテスト自動化ツールです。何回か@kbd{make}コマンドを実行し、コマンドファイルとテスト結果の想定をあらわすファイルを作成すれば、テストの準備は完了です。あとは@kbd{make}コマンドを1回実行すれば、テストを実行できます。テストが実行されると、詳細なログが出力されます。
-Autotest.mkでは、次の3つのディレクトリーを使います。
-
-@table @option
-@item テンプレートディレクトリー
-テストグループとテストのテンプレートとなるディレクトリー
-
-@item テストグループディレクトリー
-1つまたは複数のテストを含むディレクトリー
+@section 特徴
+Autotest.mkの特徴は次のとおりです。
-@item テストディレクトリー
-テスト実行のためのファイルと、実行結果をあらわすファイルを含むディレクトリー
-@end table
-
-@unnumberedsec 要件
-Autotest.mkは、LinuxやMac OS Xなどで動作します。現在動作を確認しているのは、次のディストリビューションです。
+@itemize
+@item
+使い方がシンプル
-@itemize @bullet
+@item
+さまざまなプログラムや環境に対応
@item
-Ubuntu Linux 10.10
+ビルド作業と連携しやすい
@item
-Mac OS X バージョン 10.6.5
+無償で使うことができ、自由に改造できる
@end itemize
-Mac OS Xでは、@uref{http://www.gnu.org/software/findutils/, GNU Findutils}をインストールしてください。
-
@node Install, Tutorial, About, Top
@chapter Autotest.mk インストール
@menu
+* Requirements:: 要件
* Download:: ダウンロード
-* Verify:: Autotest.mkファイルの検証
-* Expand:: ファイルの展開
+* Verify:: 検証
+* Expand:: 展開
+* Dir:: ディレクトリー
@end menu
-Autotest.mkをインストールするには、次の作業をします。
-
+@node Requirements, Download, Install, Install
+@section 要件
+Autotest.mkは、LinuxやMac OS Xなどで動作します。現在動作を確認しているのは、次のディストリビューションです。
-@enumerate
+@itemize @bullet
@item
-Autotest.mkファイルのダウンロード
+Ubuntu Linux 10.10
@item
-Autotest.mkファイルの展開
-@end enumerate
-
-@node Download, Verify, Install, Install
-@section Autotest.mkファイルのダウンロード
-
-次の場所から最新版の@file{tar.gz}ファイルをダウンロードします。
+Mac OS X バージョン 10.6.5
+@end itemize
-@itemize
-@item
-@uref{autotest_mk.tar.gz} - Autotest.mkのファイル一式を@file{tar.gz}形式で圧縮したもの
+Mac OS Xでは、@uref{http://www.gnu.org/software/findutils/, GNU Findutils}をインストールしてください。
-@item
-@uref{autotest_mk.tar.gz.md5sum} - @file{autotest_mk.tar.gz}のMD5ハッシュ値。@kbd{openssl}で作成
-@end itemize
+@node Download, Verify, Requirements, Install
+@section ダウンロード
-または、@uref{http://github.com/j8takagi/Autotest.mk/downloads/, githubのダウンロードページ}からダウンロードします。
+@uref{http://www.j8takagi.net/autotest_mk/, Autotest_mkのサイト}または@uref{http://github.com/j8takagi/Autotest.mk/downloads/, githubのダウンロードページ}から最新版の@file{tar.gz}ファイルをダウンロードします。
@node Verify, Expand, Download, Install
-@section Autotest.mkファイルの検証
+@section 検証
ダウンロードが完了したら、@kbd{openssl}と@kbd{diff}で正しくファイルがダウンロードができているかを検証します。
Files autotest_mk.tar.gz.md5sum and - are identical
@end example
-@node Expand, , Verify, Install
-@section ファイルの展開
+@node Expand, Dir, Verify, Install
+@section 展開
@file{autotest_mk}ファイルをダウンロードしたら、展開先のディレクトリーに移動してから、展開します。
次のコマンドでは、現在ログインしているユーザーのホームディレクトリーに展開します。
展開したら、Autotest.mkは使えるようになります。多くのプログラムをインストールするときに必要なコンパイルやビルド、システムディレクトリーへのインストール(@kbd{./configure}や@kbd{make}、@kbd{make install})は必要ありません。
+@node Dir, , Expand, Install
+@section ディレクトリー
+Autotest.mkでテストを実行するときは、次の3つのディレクトリーを使います。
+
+@table @option
+@item テンプレートディレクトリー
+テストグループとテストのテンプレートとなるディレクトリー
+
+@item テストグループディレクトリー
+1つまたは複数のテストを含むディレクトリー
+
+@item テストディレクトリー
+テスト実行のためのファイルと、実行結果をあらわすファイルを含むディレクトリー
+@end table
+
@node Tutorial, Template dir, Install, Top
@chapter Autotest.mk チュートリアル - 三角形判定プログラムのテスト
* Check Test Log:: テストログファイルの確認
* Group Execute:: テストグループの実行
* Check Group Log:: テストグループログファイルの確認
+* Associate:: ビルドとの連携
@end menu
@node Tutorial About, Prepare, Tutorial, Tutorial
1辺の長さが他の2辺の長さの和に等しいことを3種類の順列のすべてに対してためすことのできるテスト・ケース
@item
-ゼロより大きな3つの整数のうち、2つの数の和がそれ以外の1つの数より小さくなるテストケース
+ã\82¼ã\83ã\82\88ã\82\8a大ã\81\8dã\81ª3ã\81¤ã\81®æ\95´æ\95°ã\81®ã\81\86ã\81¡ã\80\812ã\81¤ã\81®æ\95°ã\81®å\92\8cã\81\8cã\81\9dã\82\8c以å¤\96ã\81®1ã\81¤ã\81®æ\95°ã\82\88ã\82\8aå°\8fã\81\95ã\81\8fã\81ªã\82\8bã\83\86ã\82¹ã\83\88ã\83»ã\82±ã\83¼ã\82¹
@item
-ゼロより大きな3つの整数のうち、2つの数の和がそれ以外の1つの数より小さくなることにおいて、3種類の順列すべてを考慮することのできるテストケース
+ã\82¼ã\83ã\82\88ã\82\8a大ã\81\8dã\81ª3ã\81¤ã\81®æ\95´æ\95°ã\81®ã\81\86ã\81¡ã\80\812ã\81¤ã\81®æ\95°ã\81®å\92\8cã\81\8cã\81\9dã\82\8c以å¤\96ã\81®1ã\81¤ã\81®æ\95°ã\82\88ã\82\8aå°\8fã\81\95ã\81\8fã\81ªã\82\8bã\81\93ã\81¨ã\81«ã\81\8aã\81\84ã\81¦ã\80\813種é¡\9eã\81®é \86å\88\97ã\81\99ã\81¹ã\81¦ã\82\92è\80\83æ\85®ã\81\99ã\82\8bã\81\93ã\81¨ã\81®ã\81§ã\81\8dã\82\8bã\83\86ã\82¹ã\83\88ã\83»ã\82±ã\83¼ã\82¹
@item
すべての辺がゼロであるテスト・ケース
@end example
表示される項目は、次のとおりです。
+
@itemize
@item
<テスト説明ファイル@file{desc.txt}の内容>
@section テストログファイルの確認
テストを実行して作成されたファイルを確認します。@file{1.txt}、@file{summary.log}、@file{detail.log}が作成されています。
+
@example
$ ls
0.txt 1.txt Makefile cmd desc.txt detail.log summary.log
ここでは、先に作成した@file{01_scalene}も含めて、次のようなディレクトリーとファイルを作成します。こうしたディレクトリーやファイルはAutotest.mkの@file{sample/triangle/test}以下にあるので、コピーして作成することもできます。
-
@itemize
@item
01_scalene
@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
@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
-
@end itemize
テストグループディレクトリーでは、@kbd{make}または@kbd{make check}で複数のテストをまとめて実行できます。
test: 11 / 13 tests passed. Detail in /home/foo/triangle/test/TEST.log
@end example
-@node Check Group Log, , Group Execute, Tutorial
+@node Check Group Log, Associate, Group Execute, Tutorial
@section テストグループログファイルの確認
テストグループを実行すると作成されるファイルは、次のとおりです。
@end example
+@node Associate, , Check Group Log, Tutorial
+@section ビルドとの連携
+三角形判定プログラムでは、@file{~/triangle}など作業用ディレクトリーのトップで@kbd{make}を実行すればプログラムをビルドできました。作業用ディレクトリーの@file{Makefile}を次のように編集すると、ビルドと連携してテストを実行できるようになります。
+
+@example
+CC = gcc
+
+.PHONY: all @kbd{check} clean
+
+all:
+ $(CC) -o triangle triangle.c
+
+@kbd{check:}
+@kbd{ $(MAKE) -c test}
+
+clean:
+ rm -f triangle
+@end example
+
+ビルドとテストは、次のように実行します。
+
+@example
+$ @kbd{make}
+gcc -o triangle triangle.c
+$ @kbd{make check}
+make -C test
+test: 13 / 13 tests passed. Detail in /Users/kazubito/2011_01/triangle/test/TEST.log
+test: All tests are succeded.
+@end example
+
+こうした設定をしておけば、プログラムを変更するたびに簡単にビルドとテストを実行することができます。
+
@node Template dir, Group dir, Tutorial, Top
@chapter テンプレートディレクトリー マニュアル
@file{Test.mk}
@end itemize
-é\85\8dç½®ã\81®ã\81\9fã\82\81ã\80\81é\80\9a常ã\81¯ã\83\95ã\82¡ã\82¤ã\83«ã\82\92コピーされます。変数@code{LINKMK}を指定した場合は、シンボリックリンクが作成されます。
+é\80\9a常ã\80\81ã\83\86ã\82¹ã\83\88ã\81«å¿\85è¦\81ã\81ªã\83\95ã\82¡ã\82¤ã\83«ã\83\86ã\83³ã\83\97ã\83¬ã\83¼ã\83\88ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\83¼ã\81\8bã\82\89ã\82°ã\83«ã\83¼ã\83\97ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\83¼ã\81«コピーされます。変数@code{LINKMK}を指定した場合は、シンボリックリンクが作成されます。
@subsection 変数
テストディレクトリーを指定します。指定しない場合や既存のディレクトリーを指定した場合は、エラーが発生してテストグループディレクトリーは作成されません。
@item LINKMK
-指定した場合、グループディレクトリーにテストの実行に必要なファイルのシンボリックリンクが作成されます。値は任意です。
-
-シンボリックリンクのリンク先は、テンプレートディレクトリーの中です。指定しない場合、テストに必要なファイルはテンプレートディレクトリーからコピーされます。
+指定した場合、グループディレクトリーにテストの実行に必要なファイルのシンボリックリンクが作成されます。値は任意です。シンボリックリンクのリンク先は、テンプレートディレクトリーの中です。
@end table
@unnumberedsubsec 使用例
@node make create, Rename and Copy, Group dir, Group dir
@section @kbd{make create} - テストの作成
-変数@code{TEST}で指定されたディレクトリーをテストディレクトリーとして作成し、必要なファイルを配置します。
-テスト名は、小文字のアルファベットと数字で指定します。大文字ではじまる名前を指定した場合、テストディレクトリーとして扱われません。
+変数@code{TEST}で指定されたディレクトリーをテストディレクトリーとして作成し、ディレクトリーの中に@code{Makefile}を作成します。
+
+テスト名は、小文字のアルファベットと数字で指定します。大文字ではじまる名前を指定した場合、ディレクトリーや@code{Makefile}は作成されるものの、テストグループ実行の対象になりません。
+
+変数@code{SRC=c}を指定した場合は、C言語の関数テスト用の@code{Makefile}が作成されます。
@unnumberedsubsec 使用例
* make set:: @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 clean} - テスト結果のクリア
* make cleanall at test:: @kbd{make cleanall} - テストの想定と結果をクリア
+* make time at test:: @kbd{make time} - テストの計時
+* make cleantime at test:: @kbd{make cleantime} - テスト計時結果のクリア
* Test Files:: テストディレクトリーのファイル
@end menu
scalene triangle
@end example
-@node make check at test, make time at test, make reset, Test dir
+@node make check at test, make clean at test, make reset, Test dir
@section @kbd{make}または@kbd{make check} - テストの実行
@kbd{make}または@kbd{make check}で、テストコマンド@file{cmd}が実行され、テスト結果ファイル@file{1.txt}が作成されます。また、実行時にテストの結果をあらわす次の項目が表示されます。
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
+@node make clean at test, make cleanall at test, make check at test, Test dir
@section @kbd{make clean} - テスト結果のクリア
@kbd{make clean}で、テストの実行または計時の結果作成された次のファイルが削除されます。
0.txt Makefile cmd desc.txt
@end example
-@node make cleanall at test, Test Files, make clean at test, Test dir
+@node make cleanall at test, make time at test, make clean at test, Test dir
@section @kbd{make cleanall} - テストの想定と結果をクリア
@kbd{make clean}で次の、テストの想定ファイルとテストの実行または計時の結果作成されたファイルが削除されます。
@end example
-@node make time at test, make cleantime at test, make check at test, Test dir
+@node make time at test, make cleantime at test, make cleanall at test, Test dir
@section @kbd{make time} - テストの計時
@kbd{make time}で、テストを計時しその結果が表示されます。計時結果は、@file{time.log}に格納されます。
real 0m0.006s
@end example
-@node make cleantime at test, make clean at test, make time at test, Test dir
+@node make cleantime at test, Test Files, make time at test, Test dir
@section @kbd{make cleantime} - テスト計時結果のクリア
-@kbd{make clean}で、テストの計時の結果作成された次のファイルが削除されます。
+@kbd{make cleantime}で、テストの計時の結果作成された次のファイルが削除されます。
@itemize
@item
@file{time.log}
@end itemize
-@node Test Files, , make cleanall at test, Test dir
+@node Test Files, , make cleantime at test, Test dir
@section テストディレクトリーのファイル
@table @file
@item Makefile
@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