Delphi DUnit测试层次结构
目前我正在DUnit中使用两级测试层次结构(测试项目->测试用例->测试方法;参见下面的示例)。是否可以引入第三级或更多级别Delphi DUnit测试层次结构,delphi,dunit,Delphi,Dunit,目前我正在DUnit中使用两级测试层次结构(测试项目->测试用例->测试方法;参见下面的示例)。是否可以引入第三级或更多级别 您可以使用测试套件创建任意多个嵌套级别。提供了以下示例: TestFramework单元公开了TTestSite类,即 实现测试套件,因此您可以使用更多 显式代码: 下面的函数,UnitTests,创建一个测试套件并添加 它有两个测试类: function UnitTests: ITestSuite; var ATestSuite: TTestSuite; beg
您可以使用测试套件创建任意多个嵌套级别。提供了以下示例:
TestFramework
单元公开了TTestSite
类,即
实现测试套件,因此您可以使用更多
显式代码:
下面的函数,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;
在上面的示例中,TTestSite
构造函数将传递的数组中的测试添加到
套房
您可以通过以下方式注册以上述任何方式创建的测试套件:
使用与注册单个测试用例相同的调用:
initialization
RegisterTest('Simple Test', UnitTests);
end.
使用GUITestRunner
运行时,您将看到新的层次结构
可以在测试套件中对相关测试进行分组,测试套件可以嵌套
如果您想在运行时执行此操作,请查看我的“开放组件测试框架(OpenCTF)”。我通过在“SuitePath”中添加反斜杠来构建层次结构。例如:
initialization
RegisterTests('Group1\Group2', [TExampleTests1.Suite,
TExampleTests2.Suite]);
RegisterTests('Group1\Group3', [TExampleTests3.Suite,
TExampleTests4.Suite]);
end.
最后我得到了这样的结果:
与David的方法相比,您可以减少混乱,您可以将组定义分散到不同的单元。@Serg您还可以在注册测试的名称中添加点,DUnit将为每个点添加一个级别。例如,当您执行
RegisterTest('Simple.Test',UnitTests)时代码>它将创建简单节点,并将测试作为测试层次结构中该节点的子节点。在同一个功能名称下对不同单元中的测试进行分组的功能非常好。@Marjan+1这很酷,我不知道。我有一种感觉,DUnit有很多不为人所知的力量。@DavidHeffernan yep,也偶然发现了这个小宝石:-)DUnit唯一令人伤心的是,它的“主干”现在只适用于Delphi 2007和更新版本-所以对于Delphi的旧版本,需要一个单独的(旧)版本。@mjn:这是一个无意的突破。管理员们很忙,所以修复它需要很长时间,但目的是通过Delphi7恢复工作。