Как активировать TGUITestRunner из теста DUnit? - PullRequest
3 голосов
/ 12 марта 2012

Форма TGUITestRunner представляет результаты теста DUnit и создается один раз с помощью процедуры GUITestRunner.RunTest:

procedure RunTest(test: ITest);
begin
  with TGUITestRunner.Create(nil) do
  begin
    try
      Suite := test;
      ShowModal;
    finally
      Free;
    end;
  end;
end;

Я хочу расширить ее во время выполнения, написав цветные сообщения о состоянии.Это возможно, потому что сообщения о состоянии в нижней части графического интерфейса помещаются в TRichEdit.Поэтому мне нужно получить указатель на эту форму где-нибудь в моем TTestCase.

Могу ли я сделать это без исправления кода DUnit?Может быть, вы можете порекомендовать взломать?

1 Ответ

1 голос
/ 12 марта 2012

«Разделенный» способ сделать это может заключаться в использовании некоторых «встроенных кодов» внутри ваших сообщений о состоянии:

Status('<blue>Testing');

В рамках тестовой среды dUnit вы можете проверить, является ли начальный символ сообщения о состоянии '<', и извлечь аргументы, такие как цвет или что-либо еще, а затем изменить dUnit для его обработки. </p>

Таким образом, ваши тесты будут по-прежнему выполняться на немодифицированном тестовом модуле dUnit. Через несколько лет вы можете перейти к последнему тесту dUnit, и я не рекомендую вносить какие-либо изменения в API или пытаться получить доступ к объектам, выполняющим тест. API и вещи, которые вы можете видеть из теста, строго контролируются. Это принцип правильного объектно-ориентированного проектирования, в который интенсивно верят создатели jUnit / xUnit / dUnit.

...