質問
現在、Dunitで2レベルのテスト階層を使用しています(テストプロジェクト - >テストケース - >テスト方法;以下の例を参照)。 3番目のレベルまたはさらに多くのレベルを導入することは可能ですか?
解決
テストスイートを使用して、必要なレベルのネストを作成できます。 ドキュメンテーション 次の例を提供します。
TestFramework
ユニットが露出しますTTestSuite
クラス、テストスイートを実装するクラスであるため、より明示的なコードを使用してテスト階層を作成できます。次の関数、
UnitTests
, 、テストスイートを作成し、2つのテストクラスを追加します。function UnitTests: ITestSuite; var ATestSuite: TTestSuite; begin ATestSuite := TTestSuite.create('Some trivial tests'); ATestSuite.addTest(TTestArithmetic.Suite); ATestSuite.addTest(TTestStringlist.Suite); Result := ATestSuite; end;
上記の関数を実装するさらに別の方法は、次のとおりです。
function UnitTests: ITestSuite; begin Result := TTestSuite.Create( 'Some trivial tests', [TTestArithmetic.Suite, TTestStringlist.Suite] ); end;
上記の例では、
TTestSuite
コンストラクターは、合格した配列内のテストをスイートに追加します。個々のテストケースを登録するために使用するのと同じ電話を使用して、上記の方法で作成されたテストスイートを登録できます。
initialization RegisterTest('Simple Test', UnitTests); end.
一緒に走るとき
GUITestRunner
, 、新しい階層が表示されます。
他のヒント
「suitepath」にバックスラッシュを置くことで階層を構築します。例えば:
initialization
RegisterTests('Group1\Group2', [TExampleTests1.Suite,
TExampleTests2.Suite]);
RegisterTests('Group1\Group3', [TExampleTests3.Suite,
TExampleTests4.Suite]);
end.
結局、私はこのようなものを手に入れます:
デビッドのやり方よりもはるかに少ない回数があり、グループの定義を異なるユニットに広めることができます。
ネストできるテストスイートに関連するテストをグループ化できます。
実行時にやりたい場合は、「Open Component Test Framework(OpenCTF)」をチェックしてください。 SourceForge.
所属していません StackOverflow