これは、API レベルで作業していることを前提としています。私の読み方が間違っていて、GUI レベルで作業している場合は、selenium や watir などを検討する傾向があります。
TAP の結果を出力する独自の単純なテスト フレームワーク (test any プロトコル) を作成し、それを grin または TAP2HTML で解析することを検討したことはありますか?
真剣に、TAP の出力は次のようになります。
1..7
OK 1 - null 値を持つ hello world は 'hello world' 文字列を返します
OK 2 - ボブのいる Hello World は 'hello, bob' を返します
ok 3 - 123 を使用した Hello World 戻り値 'hello, 123'
ok 4 - 5K の文字列を持つ hello world は、hello と文字列を返します
OK 5 - 特殊文字
ok 6 - 国際化、fr
わかりました 7 - 国際化、ja
7 回中 0 回のテストに失敗したようです。
(ステップ 5 の後に停止した場合、1..7 は何かがおかしいことを示します)
出力はストレート ASCII です。基本的に、numTestsTotal と numTestExecuted の 2 つのグローバルを持ち、次のような関数を記述します。
sub ok (boolean bExpected, string comment) {
もし (bExpected) {
「OK」を印刷します。numTestsExecuted . " " . コメント 。"\n";
}そうしないと {
"not ok" を出力します。numTeststotal 。" " . コメント 。"\n";
}
numTestsExecuted++;
}
sub eq(int iExpected, int iResult, string comment) {
もし (iExpected==iResult) {
「OK」を印刷します。numTestsExecuted . " " . コメント 。"\n";
} そうしないと {
"not ok" を出力します。numTestsExecuted . " " . コメント 。\n";
}
numTestsExecuted++;
}
通常のコードをライブラリに記述し、テスト アプリにライブラリとテスト モジュールを含めます。
すべてのタイプの値に対して eq をオーバーロードでき、write は配列などを比較することです。
TAP のドキュメントを参照してください:
http://testanything.org/wiki/index.php/Main_Page
そしてテスト::もっと
はい、eq() は「ちょうど」ok() を呼び出す必要があると主張できます。または、期待される結果と実際の結果を出力に挿入することもできます。君による。
とにかく、命令型言語用の TAP パーサーとインタープリターはたくさんあります。