Swift 异步URL请求数据任务超时

Swift 异步URL请求数据任务超时,swift,swift3,nsurlsession,xctest,xctestexpectation,Swift,Swift3,Nsurlsession,Xctest,Xctestexpectation,正在尝试使以下测试正常工作。它从不进入完成块,而是在30秒后超时。这个要求似乎从未提出过,因为我在查尔斯身上看不到 func testAsynchronousURLConnection() { let url = URL(string: "https://jsonplaceholder.typicode.com/posts/1")! let exp = expectation(description: "Async request") var urlRequest =

正在尝试使以下测试正常工作。它从不进入完成块,而是在30秒后超时。这个要求似乎从未提出过,因为我在查尔斯身上看不到

func testAsynchronousURLConnection() {
    let url = URL(string: "https://jsonplaceholder.typicode.com/posts/1")!
    let exp = expectation(description: "Async request")

    var urlRequest = URLRequest(url: url)

    urlRequest.httpMethod = "GET"
    urlRequest.addValue("application/json", forHTTPHeaderField: "Accept")

    let task = URLSession.shared.dataTask(with: urlRequest) { data, response, error in
        XCTAssertNotNil(data, "data should not be nil")
        XCTAssertNil(error, "error should be nil")
        exp.fulfill()
    }

   task.resume()

    waitForExpectations(timeout: 30) { error in
        if let error = error {
            print("Error: \(error)")
        }
    }
}
测试失败,出现以下错误:

异步等待失败:超过了30秒的超时时间,未实现预期:“异步请求”


我错在哪里?

如果你把查尔斯从等式中剔除,你会看到同样的行为吗?我想知道SSL代理设置中是否有奇怪的东西(例如,等待证书的确认或类似的奇怪事情)。话虽如此,我还是希望它能立即成功或失败。我用Charles来观看这部电影,效果很好……是的,我刚刚关闭Charles,创建了一个新项目。复制并粘贴测试,它在那里工作,但不在我现有的项目中。我完全搞不清楚我现有的项目可能包含哪些内容会阻碍它。如果你把Charles从等式中剔除,你会看到同样的行为吗?我想知道SSL代理设置中是否有奇怪的东西(例如,等待证书的确认或类似的奇怪事情)。话虽如此,我还是希望它能立即成功或失败。我用Charles来观看这部电影,效果很好……是的,我刚刚关闭Charles,创建了一个新项目。复制并粘贴测试,它在那里工作,但不在我现有的项目中。我完全搞不清楚我现有的项目可能包含哪些内容会阻碍它。