什么可能导致编译器不生成控制台输出

时间:2012-04-02 11:27:43

标签: delphi delphi-2010 dunit

如果我添加一些单位,我有一个不能编译为控制台的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组件,但没有对它们运行测试 我甚至试图设置链接器选项,但没有区别 有人遇到过类似的问题吗? 只是为了澄清:这个项目是Delphi 2010中的Win32。

1 个答案:

答案 0 :(得分:5)

该代码对我来说效果很好。我可以想到Delphi没有生成控制台应用程序的两个原因:

  1. CONSOLE_TESTRUNNER未定义。
  2. 您的项目代码中有{$APPTYPE GUI}
  3. 我有理由相信上面的第2项是您遇到问题的原因。