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

发布于 2012-01-16 18:44:23
您可以使用测试套件创建所需的任意多个级别的嵌套。documentation提供了以下示例:
TestFramework单元公开TTestSuite类,该类实现测试套件,因此您可以使用更显式的代码创建测试层次结构:
下面的函数UnitTests创建一个测试套件,并向其中添加两个测试类:
function UnitTests: ITestSuite;var ATestSuite: TTestSuite;begin ATestSuite := TTestSuite.create('Some tests');ATestSuite.addTest(TTestArithmetic.Suite);ATestSuite.addTest(TTestStringlist.Suite);Result := ATestSuite;end;
实现上述功能的另一种方法是:
function UnitTests: ITestSuite;begin Result := TTestSuite.Create(‘一些琐碎的测试’,TTestArithmetic.Suite,TTestStringlist.Suite );end;
在上面的示例中,TTestSuite构造函数将传递的数组中的测试添加到套件中。
您可以使用与注册单个测试用例相同的调用来注册以上述任何一种方式创建的测试套件:
initialization RegisterTest(‘简单测试’,UnitTests);结束。
当使用GUITestRunner运行时,您将看到新的层次结构。
发布于 2012-01-17 10:18:45
我通过在‘`SuitePath’中放置反斜杠来构建一个层次结构。例如:
initialization
RegisterTests('Group1\Group2', [TExampleTests1.Suite,
TExampleTests2.Suite]);
RegisterTests('Group1\Group3', [TExampleTests3.Suite,
TExampleTests4.Suite]);
end.最后我得到了类似这样的东西:

与David的方式相比,这要少得多,而且您可以将您的组定义分散到不同的单元中。
发布于 2012-01-16 18:44:43
您可以在测试套件中对相关测试进行分组,测试套件可以是嵌套的。
如果您想在运行时这样做,可以在sourceforge上查看我的“开放组件测试框架(OpenCTF)”。
https://stackoverflow.com/questions/8878641
复制相似问题