为什么XCTest UI测试有时会因错误而失败"无法在原始调度的[n秒]内接收事件传递确认"

时间:2016-08-03 16:02:07

标签: swift cocoa xctest xcode-ui-testing

我对Mac应用程序进行了相当正常的XCTest UI测试,该应用程序单击应用程序菜单中的某些菜单项以打开窗口。

在某些地方 - 比如我自己的Mac - 测试工作正常。但在其他地方 - 比如Travis CI - 他们失败了,出现了这个错误:

UI Testing Failure - Failed to receive event delivery confirmation within 2.5s of the original dispatch.
...
menuBarsQuery.menuBarItems["Top level menu item"].click()
menuBarsQuery.menuItems["Menu item in sub menu"].click()

系统:

  • Mac OS 10.11.5
  • Xcode 7.2.1
  • Mac OS SDK版本:10.11.2
  • Swift 2.1.1

测试用例的略微消毒版本:

import XCTest

class FooUITests: XCTestCase {

    override func setUp() {
        super.setUp()
        continueAfterFailure = false
        XCUIApplication().launch()
    }

    override func tearDown() {
        super.tearDown()
    }

    func testCanDoSomething() {
        let app = XCUIApplication()

        let menuBarsQuery = app.menuBars
        menuBarsQuery.menuBarItems["Top level menu item"].click()
        menuBarsQuery.menuItems["Menu item in sub menu"].click()

        let window = app.windows["Foo"]

        // Rest of test, assertions, actions in window etc.
    }

}

它在本地不可复制,所以我会问听众......为什么会发生这种错误?

0 个答案:

没有答案