Search code examples
swiftxcodeswiftuixcode11.3xcode11.4

An error occurs in the overridden function of XCUITest


An error occurs in the overridden function of XCUITest. I have never mentioned XCUITest.

The error is: "Method does not override method in superclass".

This happens when you change Xcode from version 11.4 beta 2 to 11.3.1 and build. what should I do?

import XCTest

class SampleAppUITests: XCTestCase {

    override func setUpWithError() throws {
        // Put setup code here. This method is called before the invocation of each test method in the class.

        // In UI tests it is usually best to stop immediately when a failure occurs.
        continueAfterFailure = false

        // In UI tests it’s important to set the initial state - such as interface orientation - required for your tests before they run. The setUp method is a good place to do this.
    }

    override func tearDownWithError() throws {
        // Put teardown code here. This method is called after the invocation of each test method in the class.
    }

    func testExample() throws {
        // UI tests must launch the application that they test.
        let app = XCUIApplication()
        app.launch()

        // Use recording to get started writing UI tests.
        // Use XCTAssert and related functions to verify your tests produce the correct results.
    }

    func testLaunchPerformance() throws {
        if #available(macOS 10.15, iOS 13.0, tvOS 13.0, *) {
            // This measures how long it takes to launch your application.
            measure(metrics: [XCTOSSignpostMetric.applicationLaunch]) {
                XCUIApplication().launch()
            }
        }
    }
}

Solution

  • Explained in the release notes:

    https://developer.apple.com/documentation/xcode_release_notes/xcode_11_4_beta_3_release_notes

    You (the template) are calling methods that don’t exist when you use Xcode 11.3.1 or before. Use availability to replace setUpWithError and tearDownWithError (Swift 5.2) with simple setUp and tearDown (Swift 5.1).