Dunit GuitestrunnerのCodeからToolsapiを呼び出すことはできますか?
質問
Dunit Guitestrunnerコードから使用できるように、Toolsapiユニットのグローバル変数Borlandideervicesを初期化する方法はありますか?
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;
この例では、Borlandideervices変数が初期化されていないため、プロジェクト変数はゼロになります。 Guitestrunnerは、IDE内からデバッグモード内から実行されます。
解決
いいえ、なぜなら BorlandIDEServices
IDE自体の内部(一部として)で実際に実行されているコードからのみ使用できます。デバッガーを介した外部アプリケーションで実行されるコードは、まだ外部で実行されています。デバッガーがそうであるにもかかわらず、それらはIDEの一部ではなく、したがって、 ToolsAPI
機能。
のようなツール gexperts 実際にIDEに接続してその一部になるため、アクセスできるのはそのため ToolsAPI
インターフェイス。これはそうではありません GUITestRunner
;デバッガーの下で実行されているかどうかにかかわらず、これは外部アプリケーションです。
他のヒント
私が想像できる唯一の方法(テストしていない)には、いくつかのインタープロセス通信をめぐるGuitestrunnerと通信するOTAプラグインが必要になります。
たとえば、プラグインはソケットを開き、Guitestrunnerアプリケーションから「editor」の「emotess.pas」のようなコマンドを受信します。
所属していません StackOverflow