有没有办法以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;在本例中,项目变量将为nil,因为BorlandIDEServices变量未初始化。GUITestrunner在调试模式下从集成开发环境中运行。
发布于 2011-09-10 00:32:10
不能,因为BorlandIDEServices只能从实际运行在集成开发环境内部(作为其一部分)的代码中获得。通过调试器在外部应用程序中执行的代码仍然在外部运行;即使调试器是集成开发环境的一部分,它们也不是集成开发环境的一部分,因此无法访问ToolsAPI功能。
像GExperts这样的工具实际上插入到集成开发环境中并成为其中的一部分,这就是它们可以访问ToolsAPI接口的原因。GUITestRunner并非如此;无论它是否在调试器下运行,它都是一个外部应用程序。
发布于 2011-09-10 01:00:47
我能想到的唯一方法(没有测试过)是需要一个通过进程间通信与GUITestrunner通信的OTA插件。
例如,该插件打开一个套接字,并从GUITestrunner应用程序接收诸如“在编辑器中打开文件”、“SomeTests.pas”之类的命令。
https://stackoverflow.com/questions/7364206
复制相似问题