由于物理设备上的 XCApplicationStateRunningActive,Xcode UI 测试失败

Posted

技术标签:

【中文标题】由于物理设备上的 XCApplicationStateRunningActive,Xcode UI 测试失败【英文标题】:Xcode UI Tests are failing because of XCApplicationStateRunningActive on physical device 【发布时间】:2015-12-17 01:42:57 【问题描述】:

在我的应用程序中,我添加了一些 UI 测试。使用一种测试方法一切正常,但是当我添加第二种方法时,由于以下错误,测试失败:

我觉得 [[[XCUIApplication alloc] init] launch];不会像预期的那样终止应用程序。

编辑 1:

我还注意到,如果我在测试完成后按下物理设备上的主页按钮,我可以看到 2 个应用程序实例仍在后台运行。如果我尝试再次开始测试,我会在 Xcode 中收到消息,它无法开始运行应用程序,因为应用程序 null 仍在运行。这令人沮丧:(

有没有人知道或有类似的问题?

非常感谢任何形式的帮助。

【问题讨论】:

这里有同样的问题......很想知道你是否找到答案。更多信息 - 即使有很多测试,它总是产生此错误的第二个(即使在更改测试顺序之后)。您是否尝试过在空白 ios 应用中创建测试? 不,没有尝试使用空应用程序...但我需要这些测试与我当前的应用程序一起工作:) 我可以建议遇到相同问题的每个人都向 Apple 提交错误报告吗?如果这对任何人来说确实是个问题,那么过去对我来说,使用“技术支持事件”将问题升级到相关团队的工程师手中,可能值得一试。 不是答案,但可能有帮助的调试信息:在 Travis 上运行 UI 测试时,我遇到了同样的问题。最初第一个测试通过,所有后续测试都失败了。我怀疑 Travis 实例是无头的,导致 UI 测试出现问题。我注意到我的应用程序在非常小的窗口上存在一些约束问题,并且通过修复小显示器的问题,我能够通过更多(尽管不是全部)我在 Travis 上的 UI 测试。无头 OSX 实例可能吗?它们是否具有非常低的分辨率或其他限制? 作为 23920068 的骗子,我的雷达已被关闭。另请参阅 Apple 论坛上的 this discussion。 【参考方案1】:

这听起来像是在第一次测试完成后应用程序没有被正确拆除。尝试在您的拆卸方法中明确杀死该应用程序。

- (void)tearDown 
    [[[XCUIApplication alloc] init] terminate];
    [super tearDown];

【讨论】:

我也遇到了同样的问题,已经尝试过了,但并没有为我解决问题。我在设备上运行并使用 xcode 7.2。 自从我更新到 7.2 后,同样的事情也发生在我身上 @JamesGoe 试过了,这样它显示两个测试都失败了 这里也一样。即使杀死应用程序也不会在下一次测试开始之前设置正确的应用程序。【参考方案2】:

我已提交错误报告并被要求在 Xcode 7.3 beta 3 上进行测试。它已修复! 您可以查看我的雷达 24524204‌,该雷达现已关闭并已解决。

【讨论】:

是的,我知道,如果您在 2 月 3 日 20:36 阅读我的评论,您会看到 :)【参考方案3】:

更新到 7.3 测试版为我解决了这个问题。它似乎肯定与拆卸功能有关。

【讨论】:

以上是关于由于物理设备上的 XCApplicationStateRunningActive,Xcode UI 测试失败的主要内容,如果未能解决你的问题,请参考以下文章

在 Windows 上的软件中关闭 USB 设备

Linux上的物理网卡与虚拟网络设备

iPhone 6 上的模拟器和物理设备之间的差异

Swift:监听 iOS 设备上的物理按钮向上/向下事件

在 Windows 上的模拟器和物理设备上运行本机反应的问题

模拟器或物理设备上的“未安装应用程序”android? [复制]