Swift 3.0 XCTest.performTest(_:) #选择器

Swift 3.0 XCTest.performTest(_:) #selector

在 Swift 2.3 中 [XCTest performTest:] 被翻译成 Swift 作为 public func performTest(run: XCTestRun)

在 Swift 3.0 中变为 open func perform(_ run: XCTestRun)

通过此更改,我无法尝试获取方法选择器(即使遵循建议 https://bugs.swift.org/browse/SR-1016 and https://bugs.swift.org/browse/SR-1033)。

#selector(XCTest.perform(_:)) -> matches NSObject's performSelector
#selector(XCTest.perform as (XCTestRun) -> Void) -> ambiguous reference to member 'perform'
#selector(XCTest.perform(_:) as (XCTestRun) -> Void) -> cannot convert value of type '(Selector!) -> Unmanaged<AnyObject>!' to type '(XCTestRun) -> Void' in coercion

如何正确获取 performTest 选择器?

唉,XCTest.perform(_:) 的类型是柯里化的,所以需要丑陋的:

#selector(XCTest.perform(_:) as (XCTest) -> (XCTestRun) -> Void)