5

ToolSAPIユニットのグローバル変数BorlandIDEServicesを初期化して、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;

この例では、BorlandIDEServices変数が初期化されていないため、Project変数はnilになります。GUITestrunnerは、IDE内からデバッグモードで実行されます。

4

2 に答える 2

4

いいえ、BorlandIDEServicesIDE自体の内部(の一部として)で実際に実行されているコードからのみ利用できるためです。デバッガーを介して外部アプリケーションで実行されているコードは、引き続き外部で実行されています。デバッガーはIDEの一部ですが、IDEの一部ではないため、機能にアクセスできませんToolsAPI

GExpertsのようなツールは実際にIDEにプラグインしてその一部になるため、ToolsAPIインターフェイスにアクセスできます。これはGUITestRunner;の場合には当てはまりません。デバッガーで実行されているかどうかに関係なく、外部アプリケーションです。

于 2011-09-09T16:32:10.077 に答える
2

私が想像できる唯一の方法(テストしていない)には、プロセス間通信を介してGUITestrunnerと通信するOTAプラグインが必要です。

たとえば、プラグインはソケットを開き、GUITestrunnerアプリケーションから「エディタでファイルを開く」「SomeTests.pas」などのコマンドを受け取ります。

于 2011-09-09T17:00:47.090 に答える