Next: Autotest Logs, Up: Using an Autotest Test Suite
Autotestを使用してテストスイートや評価スイートを生成することは簡単です. 評価スイート全体は,autom4teで処理されるファイルに保持されてい て,それ自身は配布物から得られるスタンドアローンのBourneシェルスクリプト を生成するために,GNU M4の環境下で使用されます. autom4teもGNU M4もインストールしているエンドユーザは 不要です.
評価スイートのそれぞれのテストは,テストグループの一部にすべきです. テストグループ(test group)は,通常はグループのテストの一つがデータ ファイルを作成し,それ以降のテストで同じグループのテストがそれを読み込む ために,お互いに実行される必要がある混合テストの,連続した手続きになって います.テストグループごとの数個のテストのみを維持する方がより良く,テス トグループごとに一つのテストのみを維持することが可能な場合,それは理想的 です.
最も単純なパッケージ以外のすべてのものに対して,testsuite.atのよ うなファイルは,別々のファイルにした方が管理しやすいことも多いので,すべ てのテストのソースを完全に保持しているわけではありません.これらの個別の ファイルのそれぞれは,単一のテストグループや,パッケージの共通の機能をす べて提示しているテストグループの連続したものを維持しています.そのような 場合は,ファイルtestsuite.atは評価スイート全体の初期化のみを行な い,他のすべてのテストファイルに対して含める文をリストアップする前に,要 素が健全かどうかを調査するときもあります.特殊なファイル package.m4はパッケージの識別子を含んでいて,見つかった場合は自動 的にインクルードされます.
便利な代替品は,すべての大域的な呼び出しをファイルlocal.at
に移動
し(ローカルなAutotestマクロは基本的な状態を調査し,AT_INIT
を呼び
出します),testsuite.atをサブテストスイートをm4_include
す
る単純なリストにすることです.そのような状況では,テストスイート全体また
は一部を生成すると,autom4teコマンドライン引数の選択が問題にな
ります.
Autotestが生成する評価スクリプトは,慣習でtestsuiteから呼び出 されます.実行時には,testsuiteはそれぞれのテストグループを順 番に実行し,テストごとにその特定のテストが成功したか失敗したかを告げる概 要を表示する一行を生成します.すべてのテストの終りに,数を集約して出力し ます.デバッグディレクトリには,それぞれのテストのグループで失敗したもの があれば,それが残ります.そのようなディレクトリは testsuite.dir/nnと命名され,nnはテストグループの順番 になり,以下のものが含まれています.
AT_DATA
で生成されます.
理想的な状況では,失敗するテストがなく,結果として有効なものが残っている デバッグディレクトリはありません.
評価スイートの個別のテストがコンフィグレーションスクリプトからの情報を入
手する必要が生じることも,実験段階ではよくあります.すべての評価スイート
で共通なこの情報が,AC_CONFIG_TESTDIR
で自動的に生成されるファイル
atconfigで提供されることもあります.テスト環境で特別に必要となる
コンフィグレーションの情報に対し,AC_CONFIG_FILES
で実際に作成され
るように,atlocal.inという名前の追加ファイルを準備してもかまいま
せん.コンフィグレーションのプロセスで,atconfigとatlocal
は二つの入力ファイルから作成され,これら二つの生成されたファイルは,自動
的にtestsuiteスクリプトで読み込まれます.
ファイル間の関係を表示する図は以下のようになります.
配布するソフトウェアパッケージの準備に使用されるファイルです.
[package.m4] -->. \ subfile-1.at ->. [local.at] ---->+ ... \ \ subfile-i.at ---->-- testsuite.at -->-- autom4te* -->testsuite ... / subfile-n.at ->'
ソフトウェアパッケージのコンフィグレーションで使用されるファイルです.
.--> atconfig / [atlocal.in] --> config.status* --< \ `--> [atlocal]
テストスイートを実行中に作成されるファイルです.
atconfig -->. .--> testsuite.log \ / >-- testsuite* --< / \ [atlocal] ->' `--> [testsuite.dir]