Question

Existe-t-il un moyen d'initialiser la variable globale BorlandIDEServices dans l'unité ToolSAPI afin qu'elle puisse être utilisée à partir du code 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;

Dans cet exemple, la variable Project sera nulle car la variable BorlandIDEServices n'est pas initialisée.GUITestrunner est exécuté depuis l'EDI en mode débogage.

Était-ce utile?

La solution

Non, car BorlandIDEServices n'est disponible qu'à partir du code fonctionnant réellement à l'intérieur (dans le cadre de) l'EDI lui-même.Le code exécuté dans des applications externes via le débogueur est toujours exécuté en externe;ils ne font pas partie de l'EDI, même si le débogueur le fait, et n'ont donc pas accès à la fonctionnalité ToolsAPI.

Des outils comme GExperts se connectent réellement à l'EDI et en font partie, c'est pourquoi ils peuvent accéder aux interfaces ToolsAPI.Ce n'est pas le cas avec GUITestRunner;c'est une application externe, qu'elle s'exécute sous le débogueur ou non.

Autres conseils

La seule façon que je peux imaginer (je ne l'ai pas testé) nécessiterait un plugin OTA qui communique avec le GUITestrunner via une communication inter-processus.

Par exemple, le plugin ouvre une socket et reçoit des commandes comme "ouvrir le fichier" SomeTests.pas "dans l'éditeur" depuis l'application GUITestrunner.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top