2011-09-09 7 views
5

C'è un modo per inizializzare la variabile globale BorlandIDEServices nell'unità ToolSAPI in modo che possa essere utilizzata dal codice DUnit GUITestrunner?Posso chiamare ToolsAPI dal codice in DUnit GUITestrunner?

procedure TGUITestRunner.FailureListViewClick(Sender: TObject); 
var 
    Project: IOTAProject; 
begin 
    if FailureListView.Selected <> nil then 
    begin 
    TestTree.Selected := TTreeNode(FailureListView.Selected.data); 

    // call OTA 
    Project := ToolsAPI.GetActiveProject; 
    ShowMessage(Project.ProjectType); 

    end; 
end; 

In questo esempio, la variabile di progetto sarà nulla perché la variabile BorlandIDEServices non è inizializzata. Il GUITestrunner viene eseguito dall'interno dell'IDE in modalità di debug.

risposta

4

No, perché BorlandIDEServices è disponibile solo dal codice attualmente in esecuzione all'interno (come parte) dell'IDE stesso. Il codice in esecuzione in applicazioni esterne tramite il debugger è ancora in esecuzione esternamente; non fanno parte dell'IDE, anche se il debugger è, e quindi non hanno accesso alla funzionalità ToolsAPI.

Strumenti come GExperts si collegano effettivamente all'IDE e diventano parte di esso, motivo per cui possono accedere alle interfacce . Questo non è il caso di GUITestRunner; è un'applicazione esterna indipendentemente dal fatto che sia in esecuzione o meno nel debugger.

2

L'unico modo che posso immaginare (non averlo testato) richiederebbe un plug-in OTA che comunica con GUITestrunner su alcune comunicazioni tra processi.

Ad esempio, il plug-in apre un socket e riceve comandi come "file aperto" SomeTests.pas "nell'editor" dall'applicazione GUITestrunner.

+2

Oppure è possibile incorporare direttamente DUnit nel plug-in, eseguire i test in un formato (ancorabile) direttamente dall'IDE. –

+1

Ho sempre voluto essere in grado di avere una pipe DUnit Exe i risultati del test su un plugin DUnit, visualizzati in una finestra degli strumenti. L'uso di una DLL DUnit (e il caricamento nello spazio degli indirizzi Delphi) è pieno di pericoli ed è soggetto a uccidere Delphi se i test sono cattivi. – Nat

Problemi correlati