Forms 如何从DUnit测试中获取活动TGUITestRunner?

Forms 如何从DUnit测试中获取活动TGUITestRunner?,forms,delphi,unit-testing,dunit,Forms,Delphi,Unit Testing,Dunit,TGUITestRunner表单表示DUnit测试结果,并由GUITestRunner.RunTest过程创建一次: procedure RunTest(test: ITest); begin with TGUITestRunner.Create(nil) do begin try Suite := test; ShowModal; finally Free; end; end; end; 我想在运行时通过编写彩色状态消息

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密码的情况下这么做吗?也许你可以推荐一些黑客?

一种“解耦”的方法可能是在状态消息中使用一些“嵌入代码”:

Status('<blue>Testing');
状态(“测试”);

在dUnit测试框架中,您可以检查状态消息的初始字符是否为“这将严重违反Xunit框架的规定”。测试用例和测试运行程序是非常解耦的,特别是测试用例是设计人员,对测试运行程序一无所知。@DavidHeffernan,我知道我必须创建自己的测试运行程序并实现我所需的功能,但也许可以在不花数小时实现ITestListener的情况下进行此小修复。好吧,DUnit毕竟是开源的……是的,我以自己的形式实现了
IStatusListener
,可以通过在安装时调用
SetStatusListener(myobjecttodisplaystation)
将其与主测试GUI一起显示;然而,我想将它更深入地集成到GUI中,因为多个表单看起来很糟糕。