我負責我公司的iOS自動化,我正在XCTest中使用Swift。我的公司正在轉換爲Swift 3,並在此期間將我的測試轉換爲Swift 2.3,直到完成轉換。自動化已經放慢到不可接受的速度。非常糟糕,如果我們再次開始並選擇框架XCTest將被取消資格。在這個過渡性的快速轉換中,我的測試時間增加了近三分之一。試圖揭開什麼問題是這個鏈接是有幫助的: Swift 3 Compile Time Incredibly SlowSwift 2.3中的XCTest令人痛苦的緩慢
我們應用final
所有類模型來處理其獲得我們每個測試6秒懶瓦爾!不幸的是,不把它恢復到原來的速度:(
我們這些在移動自動化領域使用知道作爲NSPredicate建議@Joe Masilotti是等待元素 https://stackoverflow.com/users/384110/joe-masilotti
的最佳方式我用一個包含let existsPredicate = NSPredicate(format: "exists == true")
的自定義func waitForElement()
進行了一個測試,同樣的測試現在又增加了3秒!所以總共9秒很長,但不幸的是這仍然沒有恢復到原來的速度。關於swift 2.3已經變慢的話
我要試着只轉換測試目標迅速3,看看是否有幫助。我的理論是,Xcode 8針對swift 3進行了優化,而不是迅速2.3
我的問題是,是否有另一種方法在不會減慢測試速度的擴展中編寫NSpredicate/waitForElement或hittable方法?
你確定這不是因爲你更新到Xcode 8後,你在運行iOS 10模擬器嗎?根據我的經驗,iOS 10模擬器運行速度比iOS 9慢很多。 – Oletha
有趣的我會嘗試的,是的,我正在運行一個10模擬。 – JJacquet
從OS 10模擬器中的120秒鐘到在OS 9模擬器中的55秒鐘的測試結果。謝謝你的提示。不相信蘋果發佈了Swift 3。如果代碼變慢是他們的目標,那麼他們達到了一個里程碑。恭喜Apple讓我知道你是否需要QA。 – JJacquet