2014-10-28 4 views
2

큰 프로젝트에 칼라 바시를 통합하는 과정에 있습니다. Calabash를 테스트 응용 프로그램에서 작업하고 있으므로 설치 및 환경이 올바르게 설정되어 있습니다. 접근성 레이블과 .feature 파일을 사용하여 버튼을 누르고 필드에 텍스트를 입력합니다. 그것은 위대한 작품.왜 시뮬레이터에서 Calabash가 내 iOS 앱과 상호 작용할 수 없습니까?

그러나 내 "실제"프로젝트는 훨씬 더 크고 복잡합니다. 실제 앱에서 간단한 .feature 파일을 실행할 때 구성이 내 테스트 앱 (아래 통계 참조)과 동일하지만 불규칙한 결과가 나옵니다. 약 80 %의 시간이 걸리며 " 이 메시지와 함께 밖으로 .feature 파일의 "라인을 감안할 때, 결국 시간 :

Retrying.. HTTPClient::ReceiveTimeoutError: (execution expired) 

나는 마우스를 사용하여 상호 작용 할 때 이러한 경우에, 응용 프로그램이 완전히 응답하지 않는 것으로 나타났습니다. 얼어 붙은 것 같습니다. UIAlertView도 나타나야하지만 결코 나타나지 않습니다. XCode (같은 "-cal"타겟)에서 시뮬레이터를 실행하면, 이 결코으로 고정됩니다. 나는 그것과 상호 작용할 수 있고, UIAlert가 나타나고, 모든 것이 잘 작동한다.

다른 20 %의 시간은 내 .feature 파일에 조금 더 추가 될 것입니다. 실제로는 "Given"라인과 아마도 다른 것들을 통과 할 것입니다. 과 관련이 없습니다. 화면과 상호 작용합니다. 탭핑하거나 타이핑하는 명령은 위와 같은 "실행 만기 된"메시지를 사용하여 중단되고 결국 시간이 초과됩니다.

많은 조사 끝에이 앱과 내 테스트 앱의 환경/구성 간의 가능한 차별성을 없앴으며, 내 애플 리케이션에 대한 뭔가가 있어야한다는 결론을 내 렸습니다. 불행하게도 나는 어디서부터 시작해야 할지를 알기 위해 칼라 바시에 익숙하지 않다. 어떤 도움을 주시면 감사하겠습니다.

진단 프로그램 호리병박 팀의 요청에 따라 :

> xcode-select --print-path 
/Applications/Xcode.app/Contents/Developer 
> xcodebuild -version 
Xcode 6.1 
Build version 6A1052d 
> calabash-ios version 
0.11.3 
> calabash.framework/Resources/version 
0.11.3 
irb(main):006:0> server_version 
{ 
        "app_version" => "0.10", 
         "outcome" => "SUCCESS", 
         "app_id" => "<redacted>", 
      "simulator_device" => "iPhone", 
         "version" => "0.11.3", 
         "app_name" => "<redacted>", 
    "iphone_app_emulated_on_ipad" => false, 
          "4inch" => true, 
          "git" => { 
     "remote_origin" => "[email protected]:calabash/calabash-ios-server.git", 
       "branch" => "master", 
      "revision" => "40c6245" 
    }, 
      "screen_dimensions" => { 
     "scale" => 2, 
     "width" => 640, 
     "sample" => 1, 
     "height" => 1136 
    }, 
        "iOS_version" => "8.1", 
         "system" => "x86_64", 
         "simulator" => "" 
} 
+0

앱의 프로세스에 초점을 맞춘 스핀들 펌프를 사용하여 스레드의 상태를 확인하십시오. –

+0

테스트를 실행하는 데 사용하는 코드 줄에 대한 자세한 내용이 필요합니까? 빌드 명령을 사용하여 앱을 빌드합니까? 또는 xcode에서 빌드를 사용 하시겠습니까? 여러 개의 시뮬레이터가 있다면 하나를 선택합니까? 앱 이름에 중간에 공백이 포함되어 있습니까? –

+1

나는이 게시물이 오래된 것을 알고 있지만, 응용 프로그램이 xcode 콘솔에 많이 로깅하는 경우 동결됩니다. 이것은 Apple에 의해 도입 된 버그입니다. 이에 대한 내용은 [google groups] (https://groups.google.com/forum/#!searchin/calabash-ios/sofia/calabash-ios/20UjTqsH-k0/nNAdQt8rYLkJ)에서 확인할 수 있습니다. –

답변

0

당신은 시뮬레이터를 시작할 수 성공적으로 호리병박 - IOS 콘솔을 사용하여?

보십시오 편집 이미 실행 -Cal 목표를 구축하기 위해 이것을 사용

DEBUG=1 DEVICE_TARGET='iPhone 5s (7.1 Simulator)' SDK_VERSION=7.1 PLATFORM=iphone cucumber -v --format html --out iphone.html $BASE_PATH/your-app/features/TESTCASE.feature 
+0

SDK_VERSION 변수는 Xcode 5.1부터 사용되지 않습니다. http://calabashapi.xamarin.com/ios/file.ENVIRONMENT_VARIABLES.html#Deprecated_Variables – jmoody

+0

그리고이 PLATFORM의 사용은 비표준입니다. 일반적으로 PLATFORM 변수는 교차 플랫폼 테스트에 사용되며'ios' 또는'android'가 될 수 있습니다. – jmoody

1

은 0.13로 호리병박을 업데이트 시도가? CFNetwork 프레임 워크를 추가 했습니까?

및 -force_load "$ (SRCROOT) /calabash.framework/calabash"-lstdC++를 추가 했습니까?

정보가 부족해서 죄송 합니다만 이것이 내가 생각할 수있는 전부입니까? 문제를 해결 한 경우 그걸 닫을 수 있니?

0

나타낼 UIAlertView가 있지만 결코 나타나지 않습니다. XCode (동일한 "-cal"대상)에서 시뮬레이터를 시작하면 절대로 멈추지 않습니다. 나는 그것과 상호 작용할 수 있고, UIAlert가 나타나고, 모든 것이 잘 작동한다.

다른 20 %의 시간은 내 .feature 파일에 조금 더 추가 할 것입니다.이 파일은 "감안할"선과 가능성있는 다른 것들을 효과적으로 전달할 것입니다. 화면. 탭핑하거나 타이핑하는 명령은 위와 같은 "실행 만기 된"메시지를 사용하여 중단되고 결국 시간이 초과됩니다.

캐러밴은 개인 정보 알림을 자동으로 닫습니다. 현재로서는이 동작을 선택 해제 할 수있는 방법이 없습니다 (there is an open issue in run-loop).

저는 UIAlertView가 계측기가 앱을 제어하기 전에 으로 나타나고 있다고 생각합니다.이 주제 및 솔루션에 대한 자세한 내용은 Managing Privacy Alerts wiki 페이지에서 확인할 수 있습니다.

간단히 말해 UIAlertView의 모양을 지연해야합니다.