簡體   English   中英

DUnit測試層次結構

[英]DUnit tests hierarchy

目前我在DUnit中使用2級測試層次結構(測試項目 - >測試用例 - >測試方法;參見下面的示例)。 是否有可能引入第三級甚至更多級別?

DUnit示例

我通過在“SuitePath”中添加反斜杠來構建層次結構。 例如:

initialization

  RegisterTests('Group1\Group2', [TExampleTests1.Suite,
                                  TExampleTests2.Suite]);

  RegisterTests('Group1\Group3', [TExampleTests3.Suite,
                                  TExampleTests4.Suite]);
end.

最后我得到這樣的東西:

示例DUnit測試層次結構

與David的方式相比,可以減少更多的麻煩,並且您可以跨不同的單位傳播您的組定義。

您可以使用測試套件創建任意級別的嵌套。 文檔提供以下示例:

TestFramework單元公開TTestSuite類,即實現測試套件的類,因此您可以使用更明確的代碼創建測試層次結構:

以下函數UnitTests創建一個測試套件並向其添加兩個測試類:

 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運行時,您將看到新的層次結構。

您可以在測試套件中對相關測試進行分組,這些測試可以嵌套。

如果您想在運行時執行此操作,請在sourceforge上查看我的“開放組件測試框架(OpenCTF)”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM