2012-04-02 65 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