TGUITestRunner表单代表DUnit测试结果,并由GUITestRunner.RunTest
程序创建一次:
procedure RunTest(test: ITest);
begin
with TGUITestRunner.Create(nil) do
begin
try
Suite := test;
ShowModal;
finally
Free;
end;
end;
end;
我想通过编写彩色状态消息在运行时扩展它。这是可能的,因为GUI底部的状态消息被放入TRichEdit。所以我需要在TTestCase中的某个地方获取指向此表单的指针。
我可以在不修复DUnit代码的情况下这样做吗?也许你可以推荐一些黑客?
答案 0 :(得分:1)
“解耦”方式可能是在状态消息中使用一些“嵌入代码”:
Status('<blue>Testing');
在dUnit测试框架内,您可以检查状态消息的初始字符是否为“&lt;”,然后提取颜色或其他任何参数,然后修改dUnit来处理它。
这样,您的测试仍将在未经修改的dUnit测试运行器上运行。几年后你可能想要转到最新的dUnit测试,我不建议进行任何API更改,或者尝试访问测试运行器对象。您可以在测试中看到的API和事物是有目的的严格控制。这是适当的面向对象设计的原则,jUnit / xUnit / dUnit的创建者非常相信。