Home > Mobile >  Xcode XCUItest LaunchTests - how do they work
Xcode XCUItest LaunchTests - how do they work

Time:12-05

If I create a new Xcode project with Xcode 14 with checked 'Include Tests' checkbox it creates 2 files in the UITests folder:

testfiles

I am interested in the second one: the [Project]LaunchTests.swift file. There is this automatically generated code:

    func testLaunch() throws {
    let app = XCUIApplication()
    app.launch()

    // Insert steps here to perform after app launch but before taking a screenshot,
    // such as logging into a test account or navigating somewhere in the app

    let attachment = XCTAttachment(screenshot: app.screenshot())
    attachment.name = "Launch Screen"
    attachment.lifetime = .keepAlways
    add(attachment)
}

If I run this test from the diamond in the code, it runs 4 tests that I can view in the report navigator:

run tests

Xcode runs these 4 tests, but I didn't define them anywhere. Question: where can I find the definition of that tests? Is this kind of an internal testplan which is associated with the LaunchTests file? Where can I find more information about this? It looks like there is a way to run tests with changing light/dark mode and changing orientation without writing a line of code. Thanks in advance.

CodePudding user response:

If you don't want the four variants of the test to run, then do not (as the template does) return the runsForEachTargetApplicationUIConfiguration value for this test class as true.

As the documentation tells you, when this is true, the test runner consults your actual app target to see what variants it has (light and dark mode, orientations, language localizations).

  • Related