Perl でさまざまな科学データ形式のパーサーを作成しました。parser_*.t
最近、すべてのフォーマットとサブフォーマットのファイルを含むテスト スイートを追加しました。
もちろん、パーサーの API はまったく同じですが、解析のテストに使用されるサンプル ファイルから読み取られるデータが異なります。テスト ファイルを単純化するために、パーサー オブジェクトと期待されるデータを表すハッシュ構造を渡すサブルーチンを作成しました。のように見えます
my $parser = new MyApp::Parser($file);
test_nested_objects = ($parser, {
property1 => "value",
property2 => 123,
subobject_accessor => {
property3 => "foobar",
}
}
サブルーチンtest_nested_objects
はハッシュをウォークスルーし、ハッシュで定義されたすべてのプロパティのテストを実行しsubobject_accessor
ますproperty3
。
ファイル全体で実行され、すべての*.t
ファイルに追加されたテストの数を確認しました。ここで、ジェネリック関数にいくつかのチェックを追加しましたが、すべての計画が間違っています。tests => 123
*.t
プランにサブテストを認識させるにはどうすればよいですか? 私は次のことを達成したいと思います:
- 進行状況を表示するために実行する前に与えられたテストの数
- 合計数は自動的に増加します → サブを編集するときに手動で数を変更する必要はありません
- プローブの実行時に表示されるサブ内の個々のテスト (サブ内のテストを非表示にして 0 または 1 だけを返すことは受け入れられません。解析されたデータの何が問題なのかを本当に知る必要があるためです)
ご理解いただけると幸いです。話が長くなって申し訳ありませんが、背景知識がないと理解できないだろうと思いました。