많은 UI 테스트를 다시 실행하는 과정이 상당히 번거롭지만 각 테스트를 실행하기 위해 XCode가 시뮬레이터에서 앱을 두 번 실행하는 것처럼 보입니다. 한 번은 아무 것도하지 말고 다른 시간은 실제 테스트를 실행합니다.Xcode가 UI 테스트를 실행하기 위해 앱을 두 번 시작하는 이유는 무엇입니까?
구성이 잘못되었거나 의도 한대로 작동합니까?
많은 UI 테스트를 다시 실행하는 과정이 상당히 번거롭지만 각 테스트를 실행하기 위해 XCode가 시뮬레이터에서 앱을 두 번 실행하는 것처럼 보입니다. 한 번은 아무 것도하지 말고 다른 시간은 실제 테스트를 실행합니다.Xcode가 UI 테스트를 실행하기 위해 앱을 두 번 시작하는 이유는 무엇입니까?
구성이 잘못되었거나 의도 한대로 작동합니까?
이것은 의도 한 동작입니다. 당신이보고있는 것은 사실 동일한 앱이 두 번 실행되지만 두 가지 다른 앱이 아닙니다 :
첫 번째 출시는 UITestRunner 앱입니다. UITest를 시작할 때 Xcode는 앱과 상호 작용하는 UITestRunner 앱을 빌드합니다. UITests가 단위 테스트와 다르게 작동하기 때문에이 러너 앱이 필요합니다.
단위 테스트은 앱 범위 내에서 작동합니다. 즉 그들은 앱의 모든 코드, 변수 및 상태에 액세스 할 수 있습니다. 그 때문에 단위 테스트를 실행할 때 앱만 실행됩니다.
UITests "사용자"처럼 앱을 사용하십시오. 그들은 앱의 코드에 액세스 할 수 없습니다. 사용자 인터페이스를 사용하여 앱과 상호 작용할 수 있습니다. UITests는 앱과 다른 프로세스에서 실행됩니다. 그것이 UITestRunnerApp의 역할입니다. 앱이 응답 할 수있는 이벤트를 종합합니다. 즉, UITestRunnerApp는 실제 사용자를 시뮬레이트합니다.
그래서 UITest를 시작하면 실제로 두 개의 앱이 실행되는 것을 볼 수 있습니다. 먼저 UITestRunner 앱 (배경에 즉시 전송 됨)과 앱을 차례로 선택합니다.