CocoaPods 환경에서 Jenkins 사용

CocoaPods를 사용하는 프로젝트에서 Jenkins를 사용한 테스트를하고 싶었기 때문에 메모
전제로 Xcode의 버전은 4.5.2를 사용, 테스트 프레임워크는 SenTestingKit를 이용하는 경우가 됩니다. (Kiwi 등 포함)

1. 테스트용 스키마 추가


xcodebuild 는 workspace가 대상인 경우, target 옵션을 동시에 지정할 수 없기 때문에 스키마를 지정할 필요가 있다
  • Product -> New Scheme 에서 테스트 대상을 지정하여 스키마 추가
  • Product -> Edit Scheme 에서 추가한 스키마를 실행할 수 있도록 변경
  • Product -> Manage Schemes 에서 Shared 옵션을 켭니다. (스키마 설정을 xcuserdata에서 xcshareddata로 이동)
    스키마를 git 관리에 추가git add SampleProduct.xcodeproj/xcshareddata/xcschemes/SampleProductTests.xcscheme

  • 2. Jenkins 작업 설정



    다음 플러그인을 미리 설치하십시오.
  • CocoaPods Jenkins Integration
  • Jenkins GIT 플러그인
  • XCode integration

  • Xcode의 빌드 설정은 다음과 같이 지정


    여기까지 Jenkins의 빌드 실행을 하면 빌드를 할 수 있게 되어 있을 것입니다.
    단지 테스트는 건너뛰어 버리고 있으므로 계속해서 이하의 설정을 실시합니다.

    Jenkins의 첫 번째 빌드는 workspace 내의 scheme을 인식할 수 없기 때문에 반드시 실패합니다.
    따라서 한 번은 수동으로 SampleProduct.xcworkspace를 시작해야 합니다. (한 번 열면 더 이상 닫아도 문제 없습니다.)

    3. 테스트를 실행하기 위한 설정


  • ios-sim 설치
  • brew install ios-sim
    

    에서 설치 가능

    그런 다음 Xcode 프로젝트의 테스트 대상 Build Phases Run Script
     # Run the unit tests in this test bundle.
    -"${SYSTEM_DEVELOPER_DIR}/Tools/RunUnitTests"
    +"${PROJECT_DIR}/Scripts/run_tests.sh"
    

    룬_이 sts. sh을 다운로드하여 ${PROJECT_DIR}/Scripts/에 저장

    Kiwi를 사용하는 경우 run_test.sh를 다음과 같이 변경
     # Test the log output for test case failure. If this line is present, exit 1
    -if egrep "Test Case '-\[[[:alnum:]]+[[:space:]][[:alnum:]]+\]' failed" ${test_logfile}
    +if egrep "\[FAILED\]" ${test_logfile}
    

    이제 다시 빌드 실행을하면 테스트까지 포함하여 실행된다고 생각합니다.

    참고



    ㅡㅡㅡㅜㅜㅜㅜㅜ In / b / g / 2012 / 12 / 02 / Setchin g-p-ji-kin-s-shi-fu-r-o-s에서
    htps : // 기주 b. 이 m / r하지 않는 r시 p / 이오 s ぃ b 등 ry / b ぉ b / 어서 r / 룬 _ m_ 어 p_로 sts. sh

    좋은 웹페이지 즐겨찾기