Что может заставить компилятор не выдавать консольный вывод - PullRequest
5 голосов
/ 02 апреля 2012

У меня есть проект DUnit, который не будет компилироваться как консоль, если я добавлю несколько модулей.
Проект (dpr) создается мастером и определяется CONSOLE_TESTRUNNER.

{$IFDEF CONSOLE_TESTRUNNER}
{$APPTYPE CONSOLE}
{$ENDIF}

begin
  Application.Initialize;
  if IsConsole then // <-- IsConsole is set to False.
    with TextTestRunner.RunRegisteredTests do
      Free
  else
    GUITestRunner.RunRegisteredTests;
end.

Блоки, из-за которых он выходит из строя, включают в себя некоторые компоненты VCL, но тесты на них не выполняются.
Я даже пытался установить опцию компоновщика, но это не имело никакого значения.
Кто-то испытывал подобную проблему?
Просто для пояснения: этот проект Win32 в Delphi 2010.

1 Ответ

5 голосов
/ 02 апреля 2012

Этот код прекрасно работает для меня.Я могу вспомнить две причины, по которым Delphi не создает консольное приложение:

  1. CONSOLE_TESTRUNNER не определено.
  2. У вас есть {$APPTYPE GUI} где-то в коде вашего проекта.

Я достаточно уверен, что причиной проблемы является пункт 2 выше.

...