Domanda

Esiste un modo per inizializzare la variabile globale Borlandideservices nell'unità strumenti in modo che possa essere utilizzato dal codice 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 del progetto sarà nulle perché la variabile Borlandideservices non è inizializzata. GuiteStrunner è gestito dall'IDE in modalità debug.

È stato utile?

Soluzione

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

Strumenti come Gexperts In realtà si collega all'IDE e diventa parte di esso, motivo per cui possono accedere ToolsAPI interfacce. Questo non è il caso di GUITestRunner; È un'applicazione esterna che sia in esecuzione sotto il debugger o meno.

Altri suggerimenti

L'unico modo in cui posso immaginare (non l'ho testato) richiederebbe un plug -in OTA che comunica con il Guitestrunner su alcune comunicazioni di processo.

Ad esempio, il plugin apre un socket e riceve comandi come "apri file" a volte.pas "nell'editor" dall'applicazione Guitestrunner.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top