2012-04-02 67 views
5

我有一个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组件,但是没有对它们进行测试。
我甚至尝试设置链接器选项,但它没有区别。
有人遇到过类似的问题吗?
只是澄清:该项目是德尔福2010年的Win32。

回答

5

该代码对我来说工作得很好。我可以想到为什么Delphi不生产控制台应用程序的两个原因:

  1. CONSOLE_TESTRUNNER未定义。
  2. 您的项目代码中有{$APPTYPE GUI}

我有理由相信上面的第2项是您的问题的原因。

+3

感谢这是APPTYPE。 Arrghhh。 – 2012-04-02 12:38:48