2011-07-06 2 views

답변

14

예, 작동하도록했습니다. 내 솔루션은 어쨌든 거칠고 모든 경우에 적합하지 않을 수 있습니다. /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Tools/RunPlatformUnitTests에서

Disclaimer: This solution requires to edit system files. It works for me, but may mess up XCode's unit testing stack, especially if you do not understand what you are doing.

if [ "${TEST_HOST}" != "" ]; then 

    Warning ${LINENO} "Skipping tests; the iPhoneSimulator platform does not currently support application-hosted tests (TEST_HOST set)." 

else 

당신은 다른 위치로 고정 사용자 홈을 이동할 수

if [ "${TEST_HOST}" != "" ]; then 

    mkdir -p "${BUILT_PRODUCTS_DIR}/Documents" 
    mkdir -p "${BUILT_PRODUCTS_DIR}/Library/Caches" 
    mkdir -p "${BUILT_PRODUCTS_DIR}/Library/Preferences" 
    mkdir -p "${BUILT_PRODUCTS_DIR}/tmp" 

    export CFFIXED_USER_HOME="${BUILT_PRODUCTS_DIR}/" 

    RunTestsForApplication "${TEST_HOST}" "${TEST_BUNDLE_PATH}" 
else 

로 교체,하지만 난 당신이 .APP를 이동해야합니다 생각하고 .octest 번들 함께.

-RegisterForSystemEvents을 테스트 번들의 빌드 설정 OTHER_TEST_FLAGS에 추가하십시오.

는 테스트 번들 내용
# Run the unit tests in this test bundle. 
"${SYSTEM_DEVELOPER_DIR}/Tools/RunUnitTests" 

당신의 테스트를위한 새로운 체계를 만들기

와 실행 스크립트 작성 단계가 포함되어 있는지 확인합니다.

당신은 표준 xcodebuild를 사용하여 명령 줄에서 테스트를 실행할 수 있습니다 : 시뮬레이터가 실행되고 있으면 안

xcodebuild -workspace $(WORKSPACE_NAME).xcworkspace -scheme $(TEST_SCHEME) -configuration debug -sdk iphonesimulator

, 시간에 당신이 어떤 테스트를 실행합니다.

예상대로 작동하지 않는 경우이 정보가 완전하기를 바랍니다.

+0

나는 그것을 시도 할 것이다. 윌 당신이 알려 드리겠습니다. –

+0

나는 그것을 시험해 보았다. 다음과 같은 결과가 나타납니다. 'xcodebuild : 오류 : TestScheme 구성표로 작업 공간 프로젝트를 작성하지 못했습니다. 이유 : 구성표 "TestScheme"이 (가) 시작하도록 구성되지 않았습니다. '. 이 문제가 발생 했습니까? Xcode 자체에서는 'cmd-r'이 아닌 'cmd-u'로만 테스트를 실행할 수 있습니다 (실행 명령). –

+0

이미 받으 셨습니다. 잘못된 'RunPlatformUnitTests'파일을 편집했습니다. UI 요소로 테스트를 실행할 수 있으며 통과합니다. 나는 시뮬레이터가 보이지 않는다. 시뮬레이터가 당신의 '버전'에서 시작하고 있는가? 아니면 시뮬레이터없이 애플리케이션 테스트를 실행하고 있습니까? –

1

완벽하게 일했습니다. 감사합니다. 자동 테스트가 Jenkins CI 서버에서 다시 작동합니다! 그냥 TEST_HOST=${BUNDLE_LOADER}을 고쳐야했습니다. 테스트를 실행할 때 "해당 파일 없음"에 대한 오류가 발생하면이 작업을 수행하십시오. 시뮬레이터이 함께 활성화 된 경우

osascript -e 'tell app "iPhone Simulator" to quit'

당신은 확인할 수 있습니다 :

+1

무엇으로 변경 하시겠습니까? 내 TEST_HOST는 비워 둡니다. 그것은 저에게 효과적입니다. –

2

당신은 시뮬레이터이 실행되지 않도록 할 수

sh -c 'ps -xaco command | grep "iPhone Simulator"'

1

이 가진 것 같다 시뮬레이터에서 응용 프로그램 테스트를 실행하는 Xcode 4.5GM이 지원됩니다.

+0

Xcode 내에서, RunPlatformUnitTests 스크립트가 업데이트되지 않았으므로 xcodebuild를 사용하지 않습니다. –

+0

본인의 의견에 따라 답변을 업데이트했습니다. – ff10

+0

여전히 'xcodebuild'를 사용할 때 응용 프로그램 테스트가 작동하지 않는다는 사실은 변경되지 않습니다. 그들은 Xcode 내에서 잘 작동합니다. SDK는 부적합합니다. –

관련 문제