3

テスト サポートがあまりない言語の自動テストを導入するためのテスト フレームワークを探しています。私が理解できる限り、何らかの形式のプロトコルを使用して VDF テストを実行できるフレームワークが必要です。テスト フレームワークとのインターフェイスとなる VDF コードを作成するよりも、テストを作成することに時間を費やしたいので、軽量のプロトコルが好まれます。

Slim with Fitnesseは良い候補のようですが、すべての推奨事項に興味があります。

プログラミング言語間で同じテスト フレームワークを使用できることは、追加のボーナスです。

4

1 に答える 1

4

これは、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 パーサーとインタープリターはたくさんあります。

于 2009-05-13T16:39:39.843 に答える