Squish Hook 进入具有 Windows 控制台和 Qt window 的 AUT
Squish Hook into an AUT that has a Windows console and Qt window
在工具包设置为 Qt 并设置 'Hook into sub-processes launched by the application' 的情况下尝试启动 AUT 时,我必须启动应用程序(这是一个 windows 应用程序,它启动一个进程来设置 Qt window) 使用 Squish 提供的 dllpreload.exe 附加到 Qt window。这样做不会显示 windows 控制台,只会启动 Qt window。这成功挂接到 Qt...
当设置 testSettings.setWrappersForApplication("application", ("Windows", "Qt"))
或 testSettings.setWrappersForApplication("application", ("Windows"))
时,它无法将 Qt window 作为 Qt window 挂钩并且无法识别 Qt 组件。
squish 是否可以将 windows 控制台识别为 'Windows' 并将 Qt window 识别为 'Qt'?
连接到 Qt 应用程序的用例,该应用程序是本机 Windows 应用程序的子进程,记录在 a Knowledge Base article 中。最简单的方法是:
- 重命名Qt应用程序的原始可执行文件,例如
myqtapp.exe
为相同的名称但在末尾添加下划线,即myqtapp_.exe
.
- 将 Squish 附带的
dllpreload.exe
程序重命名为 myqtapp.exe
。
这样,您的 Windows 程序会在不知不觉中调用 dllpreload.exe
,然后它会根据其自身的文件名推断出原始应用程序的文件名(它只会添加一个下划线)。
dllpreload.exe
程序虽然不是完美的代理,因此您的 Windows 应用程序可能注意到它没有与真正的 AUT 交互。在这种情况下,修改 Windows 应用程序可能更容易,以便它明确地将 dllpreload.exe
添加到用于启动 Qt 应用程序的命令行。
您可以有条件地执行此操作,以便仅在通过 Squish 启动 Windows 应用程序时执行此操作。这种情况可以通过测试 SQUISH_PREFIX
环境变量的存在来检测。
在工具包设置为 Qt 并设置 'Hook into sub-processes launched by the application' 的情况下尝试启动 AUT 时,我必须启动应用程序(这是一个 windows 应用程序,它启动一个进程来设置 Qt window) 使用 Squish 提供的 dllpreload.exe 附加到 Qt window。这样做不会显示 windows 控制台,只会启动 Qt window。这成功挂接到 Qt...
当设置 testSettings.setWrappersForApplication("application", ("Windows", "Qt"))
或 testSettings.setWrappersForApplication("application", ("Windows"))
时,它无法将 Qt window 作为 Qt window 挂钩并且无法识别 Qt 组件。
squish 是否可以将 windows 控制台识别为 'Windows' 并将 Qt window 识别为 'Qt'?
连接到 Qt 应用程序的用例,该应用程序是本机 Windows 应用程序的子进程,记录在 a Knowledge Base article 中。最简单的方法是:
- 重命名Qt应用程序的原始可执行文件,例如
myqtapp.exe
为相同的名称但在末尾添加下划线,即myqtapp_.exe
. - 将 Squish 附带的
dllpreload.exe
程序重命名为myqtapp.exe
。
这样,您的 Windows 程序会在不知不觉中调用 dllpreload.exe
,然后它会根据其自身的文件名推断出原始应用程序的文件名(它只会添加一个下划线)。
dllpreload.exe
程序虽然不是完美的代理,因此您的 Windows 应用程序可能注意到它没有与真正的 AUT 交互。在这种情况下,修改 Windows 应用程序可能更容易,以便它明确地将 dllpreload.exe
添加到用于启动 Qt 应用程序的命令行。
您可以有条件地执行此操作,以便仅在通过 Squish 启动 Windows 应用程序时执行此操作。这种情况可以通过测试 SQUISH_PREFIX
环境变量的存在来检测。