我正在尝试使用挤压来自动化我的 Qt QML 应用程序。当我尝试捕获 AUT 的测试用例时,压缩无法加载它。服务器日志显示
Squish Qt toolkit support failed: libQt6Widgets.so.6: cannot open shared object file: No such file or directory
libQt6widgets.so.6 存在于我的 Qt 路径中。
Linux => Ubuntu22 和 Ubuntu 20 Qt版本6.6.0 挤压qt版本6.6.0
该目录仅包含 qt 应用程序。使用上述 AUT 创建了一个新的测试套件。 在挤压中启动 AUT。 Squish 服务器出现错误。
我在 Windows 中使用挤压窗口版本尝试了相同的操作。效果很好。
(促进我之前的评论来回答:)
该库必须位于操作系统的搜索路径中。
正确部署的 Qt 应用程序通常应该是这种情况。如果不是,应用程序的部署可能不正确,应重新考虑。
但是,一般来说,Squish 中对 Qt 默认二进制包的 Qt 支持依赖于 Qt Widgets。这意味着不需要 Qt Widgets 的应用程序将在没有相应库的情况下进行部署,然后 Squish 的 Qt 支持将由于缺少库而无法加载到应用程序中。要处理这个问题:
将此库(从 Qt 构建文件夹中 - 前提是在此 Qt 构建的配置时启用了 Qt Widgets)复制到与应用程序的其他 Qt 库相同的文件夹中。
使用禁用了 Qt Widgets 模块/选项的 Qt 构建来构建 Squish 的 Qt 支持。这样,Squish 的 Qt 支持就不会将此作为依赖项。
将 LD_LIBRARY_PATH 设置为包含该库的文件夹的路径,或将其添加到 LD_LIBRARY_PATH - 对于 Squish IDE 或 AUT(例如,在选项卡“AUT”>“AUT 环境”的测试套件设置中)。
在 shell/终端中:
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:路径/到/文件夹./squishide