2012-04-02 15 views
5

Ho un progetto DUnit che non verrà compilato come console se aggiungo alcune unità.
Il progetto (dpr) viene creato dalla procedura guidata e viene definito CONSOLE_TESTRUNNER.Cosa può impedire al compilatore di produrre un'uscita della console

{$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. 

Le unità che fallire includono alcuni componenti VCL, ma nessun test vengono eseguiti su di loro.
Ho persino provato a impostare l'opzione Linker ma non ha fatto alcuna differenza.
Qualcuno ha riscontrato un problema simile?
Solo per chiarimenti: questo progetto è Win32 in Delphi 2010.

risposta

5

Questo codice funziona perfettamente per me. Posso pensare a due motivi per cui Delphi non produce un'app per console:

  1. CONSOLE_TESTRUNNER non definito.
  2. Hai {$APPTYPE GUI} da qualche parte nel codice del tuo progetto.

Sono ragionevolmente sicuro che l'elemento 2 sopra sia la ragione del tuo problema.

+3

Grazie è stato l'APPTYPE. Arrghhh. –