iOS:如何在设备上运行 XCTest?

Posted

技术标签:

【中文标题】iOS:如何在设备上运行 XCTest?【英文标题】:iOS: how to run XCTest on device? 【发布时间】:2015-03-16 12:44:48 【问题描述】:

我目前正在学习 XCTest 以进行单元测试。我能够在模拟器上运行默认模板 XCtest 没有任何问题。我可以在测试导航视图中显示所有绿色刻度。但是,当我使用我的应用程序作为主机应用程序在设备上运行它们时,没有任何反应。我的应用程序在设备上启动,XCTest 似乎没有运行。我什至在测试中设置了一个断点,它没有中断。此外,在模拟器中,应用程序会在测试完成时自动停止,但是,当在设备上运行时,我的应用程序只是保持运行,从未停止过。我做错了什么吗?

【问题讨论】:

【参考方案1】:

xCode 在物理设备上运行 XCTest 时应显示此消息。

不支持在 ios 设备上进行逻辑测试。您可以在模拟器上运行逻辑测试。

【讨论】:

一开始是这样,但是,一旦我选择我的应用程序作为主机应用程序并勾选“允许测试主机应用程序 API”框,它就消失了。 在 Xcode 6 中,它可以在设备中运行测试,只要确保将有效的配置文件设置为测试目标就可以了,我使用了通配符并且运行良好。【参考方案2】:

有一个名为 GHUnit 的库,我们可以在 iphone 设备上运行单元测试。它在内部使用 xctest。以下是您设置 GHUnit 的方法。

我能够按照说明使用 xcode 5 设置单元测试。应该可以使用 Xcode 6 吗?

【讨论】:

我假设您的设备 UDID 已添加到您的配置文件中?? 感谢您的回复。我一定会在 GHUint 上试一试。至于配置文件,我确实为测试目标创建了一个特定的配置文件,否则构建会失败。 该设计是否在配置文件上进行测试?将代码歌唱和配置文件设置为自动,试一试,看看它是如何工作的。我建议将配置文件设置保持为自动。

以上是关于iOS:如何在设备上运行 XCTest?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 XCTest UI 测试区分 iOS 13 中的标题和静态文本

XCTest 中的 IOS -NSRunLoop:如何让运行循环在单元测试中工作?

在 iphone 设备上运行 XCTest

如何在 Swift/XCTest 中写入本地文件?

如何通过与 swift/xctest 协调来点击 iOS 主屏幕上的某个点

AWS Device Farm目前支持iOS 10.3.3及更低版本的XCTest