質問

現在、Dunitで2レベルのテスト階層を使用しています(テストプロジェクト - >テストケース - >テスト方法;以下の例を参照)。 3番目のレベルまたはさらに多くのレベルを導入することは可能ですか?

DUnit Example

役に立ちましたか?

解決

テストスイートを使用して、必要なレベルのネストを作成できます。 ドキュメンテーション 次の例を提供します。

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.

結局、私はこのようなものを手に入れます:

Example DUnit Test Hierarchy

デビッドのやり方よりもはるかに少ない回数があり、グループの定義を異なるユニットに広めることができます。

ネストできるテストスイートに関連するテストをグループ化できます。

実行時にやりたい場合は、「Open Component Test Framework(OpenCTF)」をチェックしてください。 SourceForge.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top