ios 如何在XCTest期间检查是否安装了任何应用程序?

6za6bjd0  于 2022-12-05  发布在  iOS
关注(0)|答案(2)|浏览(178)

我需要检查具有特定bundleIdentifier的应用程序是否安装在活动设备或模拟器上,并且我需要通过XC UI测试执行此操作。
我试过做:

import XCTest

class ServerLoop: XCTestCase {
  func testRunAppInstalled() async throws {
    let app = XCUIApplication("pl.bartekpacia.SomeApp")
    if app.exists {
      // code
    }
  }
}

但不幸的是,它只告诉我应用程序当前是否打开,而不是安装。
我希望能够检查是否安装了 * 任何应用 *,而不仅仅是我的应用。我需要这个,因为如果没有安装bundleId的应用,而我做了XCUIApplication(bundleId),那么测试失败,没有办法阻止它这样做。

nuypyhwy

nuypyhwy1#

我无法使用包标识符,但如果你有应用程序的名称,因为它在springboard上是可见的,这段代码在我的测试中工作:

func test_existence() {
    let springboard = XCUIApplication(bundleIdentifier: "com.apple.springboard")
    let appIcon = springboard.icons["Settings"]
    if appIcon.exists {
        print("YEAH!")
    } else {
        XCTFail()
    }
}
lvmkulzt

lvmkulzt2#

看起来SpringBoard解决方案是一个很好的解决方案。
您也可以尝试启动XCUIApplication,并预期XCTExpectFailure在非严格模式下测试失败,且XCTestCase上的continueAfterFailure属性设定为true。

相关问题