当尝试启动一个AUT时,工具包设置为Qt,并且'Hook到由应用程序启动的子进程‘集合,我必须使用Squish提供的dllpreload.exe启动应用程序(这是一个启动进程来设置Qt窗口的windows应用程序)来连接Qt窗口。这样做并不会显示windows控制台,只会启动Qt窗口。这个钩子成功地连接到Qt ..。
当设置testSettings.setWrappersForApplication("application", ("Windows", "Qt"))或testSettings.setWrappersForApplication("application", ("Windows"))时,它无法将Qt窗口作为Qt窗口挂钩,并且无法识别Qt组件。
到底有什么办法让squish将windows控制台识别为“Windows”,而将Qt窗口识别为“Qt”?
发布于 2016-07-19 15:27:03
知识库文章中记录了连接到Qt应用程序的用例,Qt应用程序是本地Windows应用程序的一个子进程。解决这一问题的最简单方法是:
myqtapp.exe,但在末尾添加下划线,即myqtapp_.exe。dllpreload.exe程序重命名为myqtapp.exe。这样,您的Windows程序就会不知不觉地调用dllpreload.exe,然后它将从它自己的文件名中推断出原始应用程序的文件名(它只是添加一个下划线)。
不过,dllpreload.exe程序并不是一个完美的代理,所以您的Windows应用程序可能注意到它没有与真正的AUT交互。在这种情况下,修改dllpreload.exe应用程序可能更容易,以便它将dllpreload.exe显式地添加到用于启动Qt应用程序的命令行中。
您可以有条件地这样做,只有在通过Squish启动Windows应用程序时才能这样做。可以通过测试是否存在SQUISH_PREFIX环境变量来检测这种情况。
https://stackoverflow.com/questions/38203351
复制相似问题