iOS XCTestCase 启动、执行一些操作、终止应用并重新启动应用

Posted

技术标签:

【中文标题】iOS XCTestCase 启动、执行一些操作、终止应用并重新启动应用【英文标题】:iOS XCTestCase to launch, perform some actions, kill the app and re-launch app 【发布时间】:2017-05-10 02:35:23 【问题描述】:

我必须在 ios 模拟器上使用 swift 和 XCTestCase 自动化以下场景。

第 1 步:启动应用程序 第 2 步:在应用上执行一些操作 第 3 步:杀死应用程序 第 4 步:重新启动应用并检查执行的操作是否持久

我在我们的一个问题中发现使用下面的 sn-p。

    XCUIDevice.shared().press(XCUIDeviceButton.home)
    sleep(60)
    XCUIDevice.shared().siriService.activate(voiceRecognitionText: "Open appName")

这对我不起作用,请有人建议任何不同的方法。

谢谢,

【问题讨论】:

你在做单元测试,对吧?如果是这样,您能否切换到 Xcode UI 测试 进行此特定测试? 【参考方案1】:

要启动或重新启动,请使用launch:

XCUIApplication().launch()

要终止应用程序,请使用terminate()。但是根据documentation:

如果应用程序已经在运行,此调用将终止现有实例,以确保新启动的实例处于干净的启动状态。

很快。您的测试可能如下所示:

XCUIApplication().launch()
// some actions
XCUIApplication().launch()
// some action

【讨论】:

不错的答案!但我相信这只有在他使用 UI 测试(而不是单元测试)时才有效,对吧? 是的。这仅适用于 UI 测试。我怀疑它可以通过单元测试来完成。

以上是关于iOS XCTestCase 启动、执行一些操作、终止应用并重新启动应用的主要内容,如果未能解决你的问题,请参考以下文章

IO9 上的 UI XCTestCase 无法播放

ios的单元測试OCUnit以及更新了之后的XCTestCase

在 XCTestCase 中自动关闭对话框

如何在 XCTestCase 中测试 NSPersistentDocument?

从命令行从 iOS 中的测试套件运行单个/可选测试用例(XCTestCase)

在位于 XCTestCase 的单独文件中的函数中捕获屏幕截图