2016-12-22 3 views

답변

0

나는 이것이 가능하지 않다고 생각합니다. 애플은 모든 앱이 시작되는 데 20 초의 시스템 제한이있다. 앱이 죽는 것보다 시간이 오래 걸린다. Source

UI 테스트에서 앱을 부트 스트래핑해야하기 때문에 Apple은 5 초 이내에 모든 설정을 수행 할 수 있습니다. 따라서 본질적으로 앱을 실행하는 데 15 초 제한이 있습니다.

시스템의 20 초 제한을 무시할 수 없으므로 XCTest의 15 초 제한을 재정의 할 수도 없습니다.

2

예상을 사용하여 임의의 시간을 할당하여 테스트 사례를 실행할 수 있습니다. 15.0 초가 지나기 전에 추가 기대를 설정하고 필요한만큼이 프로세스를 반복하십시오. 여기에 짧은 코드 샘플을 설명하기 위해입니다 :

var timeToDelay = 60.0 
repeat { 
    let delay = min(13.0, timeToDelay) 
    timeToDelay -= delay 
    let date = Date().addingTimeInterval(delay) 
    let predicate = NSPredicate(format: "now() > %@", argumentArray: [date]) 
    self.expectation(for: predicate, evaluatedWith: [], handler: nil) 
    self.waitForExpectations(timeout: 14.0, handler: nil) 
} while timeToDelay > 0 

장소이 권리를 당신이 테스트 실패를 참조하고 (초)가 필요합니다 추가 시간에 timeToDelay를 교체하기 전에.