【发布时间】:2015-11-27 02:09:21
【问题描述】:
我目前正在对运行 iOS 的设备上的 Qt 应用程序进行自动化测试。到目前为止,我能够很好地安装和运行这些应用程序,但我无法读取它们的输出。据我了解,阅读 this 问题,Qt 使用 gdb 服务器 将 std::out 和 std::err 的输出传递给 Qt Creator,但我无法理解如何使用此信息。除了包标识符之外,我只获得了应用程序的 .ipa 文件。我可以访问应用程序代码,但我不能更改它。
我使用libmobiledevicelibraries 来处理所有任务,例如设备的连接、安装和执行。
总结:我想读取显示在我的控制台上的 Qt 编写的应用程序的调试输出,就像它在 “应用程序输出” 窗口中一样我的创造者。
【问题讨论】:
-
在为 iOS 构建时,我也直接在 XCode 中运行了 qmake 生成的项目文件。所以这个问题可能更通用......并且可能是,如何在 XCode 中使用 iOS 自动化测试,或在 XCode for iOS 中重定向 std err std out。
-
可能最简单的方法是将所有调试输出作为槽调用排队到调试接口对象中。该对象将存在于辅助线程中,并通过网络连接将调试输出发送出去。
-
@phyatt 在 XCode 中显示输出并不是我真正需要的。我想要的是从命令行访问所有提示,因为我开发了一些 python 软件来处理所有基础设施。
-
@Kuba Ober,这听起来像是一个可行的解决方案,但正如问题中所述,我无法编辑应用程序的代码库
-
嗯,Qt Creator 带有完整的源代码。为自己构建一个副本(当然是在 Qt Creator 下),运行它,看看它在显示输出时做了什么。
标签: ios qt continuous-integration qdebug