// GUITestRunner.RunRegisteredTests; TextTestRunner.RunRegisteredTests; end.
先定义应用程序类型,加入{$APPTYPE CONSOLE},然后使用TextTestRunner替代GUITestRunner就可以了。 确省情况下,测试程序将把运行所有的TestCase后给出报告,如果想在达到一定错误就停止运行,可以使用 TextTestRunner.RunRegisteredTests(rxbHaltOnFailures); Dunit附加功能 使用Dunit的附加功能要先在Uses中加入: TestExtensions, // needed for TrepeatedTest Dunit的主要附加功能有: 1、重复运行某一TestCase 2、使用TtestSetup类初试化 Dunit的TestExtensions还提到了两个类TactiveTest、TexceptionTestCase来实现: 3、在独立线程中运行测试 4、Exception测试 但在Dunit中的最新源码,这两个类只是简单继承了TtestDecorator而没有做任何的修改,在Dunit的Readme中也没有提到这两个类的用法。因此应该属于还没有实现的类。 重复运行TestCase 要重复运行某一TestCase,只需要将initialization里面的注册代码 TestFramework.RegisterTest(TTestCaseFirst.Suite);
简单替换为: TestFramework.RegisterTest(TRepeatedTest.Create(TTestCaseFirst.Suite, 2));
就可以,TRepeatedTest.Create的第一个参数为要重复的TestSuite/TestCase,第二个参数代表次数。运行后的结果如下:
请注意,TestCaseFirst前面多了“2x”。 使用TtestSetup类 使用TtestSetup类的作用就是在运行所有的测试方法前后只运行一次Setup几TearDown。可以用于创建数据库连接等等。 要使用TtestSetup,我们先在《创建一个简单的例子》一节中创建的TestUnit中声明一个新的类(先在Uses中加入Dialogs,TestExtensions) TestSetupTest = class (TTestSetup)
加入实现代码 procedure TestSetupTest.SetUp;
修改TtestCaseFirst.SetUp及TTestCaseFirst.TearDown,加入下面加粗语句。 procedure TTestCaseFirst.SetUp;
最后将initialization改为 initialization
运行之后的结果如下:
注意TtestCaseFirst前面加了”[d]”。运行一次测试就可以清楚看到TestSetupTest类中Setup和TearDown只运行了一次,而TtestCaseFirst中的Setup和TearDown运行了两次 测试Exception 虽然TexceptionTestCase没有实现,但是Dunit在源码附加examples estexception目录中有一个如何测试Exception的例子。 主要的实现在procedure TTestMyObject.CheckException和procedure TTestMyObjectOverrideRunTest.RunTest中。具体的实现可以看代码。 (责任编辑:admin) |

