DUnit测试层次结构

时间:2012-01-16 10:23:54

标签: delphi dunit

目前我在DUnit中使用2级测试层次结构(测试项目 - >测试用例 - >测试方法;参见下面的示例)。是否有可能引入第三级甚至更多级别?

DUnit Example

3 个答案:

答案 0 :(得分:11)

我通过在'SuitePath'中添加反斜杠来构建层次结构。例如:

initialization

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

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

最后我得到了这样的话:

Example DUnit Test Hierarchy

比大卫的方式少得多,你可以在不同的单位上传播你的小组定义。

答案 1 :(得分:9)

您可以使用测试套件创建任意级别的嵌套。 documentation提供了以下示例:

  

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运行时,您将看到新的层次结构。

答案 2 :(得分:3)

您可以在测试套件中对相关测试进行分组,这些测试可以嵌套。

如果您想在运行时执行此操作,请在sourceforge查看我的“开放组件测试框架(OpenCTF)”。