2015-02-04 170 views
1

我有一个写在UIAutomation中的自动测试脚本。如果我从仪器运行它,所有测试都会通过。如果我从命令行运行它,则其中一个测试用例将失败,并导致测试脚本运行终止。仪器和命令行的不同测试结果

失败的测试用例是关于触发UIAActivityIndictor,然后显示一个警报窗口。

我在网上做了一些搜索,人们都说命令行比仪器快。有时,您需要确保UIAElement有效。然而,在我的情况下,在这个测试案例中,似乎命令行丢失了应用程序的层次结构UIAElements。 logElementTree的结果只是目标和应用程序,根本没有窗口。用户界面似乎冻结。

任何建议将有所帮助。

+0

你试过在失败的行之前添加一个延迟吗?在我的测试中,我不得不特意放慢一些部分,因为自动化工具足够快,可以在转换状态下捕捉应用程序,就像对话仍在消失时一样。控制台可能会加速代码的速度,导致这类问题。 – Braains

+0

是的,我添加了延迟。但问题是,测试失去了整个视图层次结构。 – hqfking

+0

我注意到仪器有很多不稳定的行为,但我所有的都是与时间相关的问题,所以我很希望它也能为你说话! – Braains

回答

1

我面临类似的问题。当UI被完全冻结时,这意味着应用程序被放入无限循环。在我的情况下,产量巨大的NSLog是原因。要检查: 1)在你的脚本中的某个点放上非常大的睡眠 2)运行脚本 3)将xcode附加到应用程序:debug->附加到进程 - >你的应用程序的进程 4)等到冻结发生。确保它手动 5)在xcode按暂停执行 6)现在你可以在stacktrace中看到应用程序挂在哪里

相关问题