2017-10-23 11 views
0

Xcode 9부터는 새로 설치 한 후 앱을 실행한다고 가정하는 새로운 시작 인수 -StartFromCleanState이 있습니다. 그러나 그것은 작동하지 않는 것 같아요 검색 -StartFromCleanState 아무런 결과도 나오지 않으므로 문서가 없어집니다.XCTest UITest에 새로 설치하는 앱

source

내 목표는 딥 링크를 사용하여 내 응용 프로그램을 실행하는 것입니다. 내 시험의 흐름과 같이 경우 : UITest이 응용 프로그램을 실행하여 시작

  1. UITest 사파리
  2. UITest는
  3. UITest 링크 및 앱을 클릭 딥 링크 링크가 웹 페이지를 입력 열립니다 열어

스텝은 백그라운드 상태에서 전경 상태로 가져와 앱을 엽니 다. 이상적으로 앱이 깨끗하고 신선한/설치되면 딥 링크를 테스트하려는 경우에만

func test_deeplink() { 
    programmaticallyTapDeepLink() 
    XCUIApplication().launchArguments = ["-StartFromCleanState", "YES"] 
} 

1 단계에서 한 번만 호출됩니다 : didFinishLaunchingWithOptions : 이는 응용 프로그램을 의미한다.

나는 프로그래밍 방식으로 딥 링크를 탭하기 전에 실행 인수를 설정해 보았습니다.하지만 딥 링크를 원하는대로 작동하지 않는 것 같습니다.

해결 방법이 있습니까? 당신이 소스로 지정한 문서에서

답변

0

는, 작가는 샘플 코드를 제공합니다 :

XCTContext.runActivity(named: "Given I have launched app in clean state") { _ in { XCUIApplication().launch() XCUIApplication().launchArguments = ["-StartFromCleanState", "YES"] }

-StartFromCleanState은 "새로운 시작 인수"아닙니다. 이것은 XCUIApplication(). launchArguments 메소드에 제공되는 키와 값이며 전달 된 실행 인수 (["-StartFromCleanState", "YES"])를 처리하는 것은 테스트중인 애플리케이션 개발자 (XCUIApplication)의 몫입니다.

이 스택 오버플로 대답은 몇 가지 예를 가지고 : How to access launchEnvironment and launchArguments set in XCUIApplication, running UI tests in XCode?

또한 userDefaults에 독서 고려할 수 있습니다;

시작 시간 : application(_:willFinishLaunchingWithOptions:) application(_:didFinishLaunchingWithOptions:)

가 응용 프로그램 수명주기 상태 및 위임에 대한 추가 정보를 원하시면이 사과 문서를 참조하십시오 당신은이 두 수명주기 방법 중 하나에 전달 된 launchArguments에 따라 그들에 리셋을 트리거 할 수 있습니다 각 상태에서 사용할 수있는 방법 : https://developer.apple.com/documentation/uikit/uiapplicationdelegate