如何在 XCTest 的 setUp 函数中报告错误?

Gre*_*eri 2 xctest swift xcode-ui-testing

在我的 UI 测试中,我想在运行我的 UI 测试之前调用远程端点来重置数据库状态。这很好用,但我想确保在请求失败时我能捕捉到任何错误。我想做的是:

  1. 停止运行后续测试(将其标记为失败)
  2. 提供一些发生的事情的日志。

下面是一些示例代码,说明了我的观点:

override func setUp() {
    super.setUp()

    var finished = false

    dispatch_async(dispatch_get_global_queue(QOS_CLASS_BACKGROUND, 0)) {
        let request = Alamofire.request(.GET, "http://xxx.xxx.xxx.xxx/resetdb")
        request.response() {
            request, response, data, error in
            if let _ = error {
                let message = "Could not call remote helper -- \(response?.statusCode)"
                XCTFail(message)  // doesn't work
                debugPrint(message) // can't see this anywhere
            }
            finished = true
        }
    }

    while !finished {
        NSRunLoop.currentRunLoop().runMode(NSDefaultRunLoopMode, beforeDate: NSDate.distantFuture())
    }
    app = XCUIApplication()
    app.launch()
}
Run Code Online (Sandbox Code Playgroud)

Jon*_*eid 5

setUp是测试运行的一部分,就像tearDown. 在任一中使用常规 XCTest 断言。