我在我的公司负责 iOS 自动化,我正在 XCTest 中使用 Swift。我的公司正在转换为 Swift 3,在此期间,我已将我的测试转换为 Swift 2.3,直到我们完成转换。自动化已经放缓到无法接受的速度。太糟糕了,如果我们重新开始并选择框架 XCTest 将被取消资格。在这种过渡性的快速转换中,我的测试时间增加了近三分之一。试图找出问题所在,这个链接很有帮助: Swift 3 Compile Time Incredibly Slow
我们应用于final
所有类模型来处理惰性变量,每次测试使我们获得了 6 秒的时间!不幸的是,这并没有让它恢复到原来的速度:(
正如我们这些移动自动化领域的人所知道的那样,使用@Joe Masilotti 推荐的 NSPredicate 是等待元素的最佳方式 https://stackoverflow.com/users/384110/joe-masilotti
我注释掉了一个使用自定义的测试,func waitForElement ()
其中包括let existsPredicate = NSPredicate(format: "exists == true")
. 同样的测试现在增加了 3 秒!所以总共9秒是可观的,可惜这仍然没有回到原来的速度。我希望这能表达我对 swift 2.3 变得多么缓慢的看法。
我将尝试仅将测试目标转换为 swift 3,看看是否有帮助。我的理论是 Xcode 8 针对 swift 3 而不是 swift 2.3 进行了优化
我的问题是,是否有另一种方法可以在不会减慢我的测试速度的扩展中编写 NSpredicate / waitForElement 或 hittable 方法?