Travis CI에서 xcpretty를 사용하여 xcodebuild 로그를 정리합니다.

2410 단어 XcodeiOSTravisCI

배경



xcodebuild를 사용하여 빌드를 수행하면 정리되지 않은 불필요한 빌드 로그가 많이 나오므로 Travis CI를 사용하여 테스트를 일상적으로 실시해도 테스트가 떨어지면 어디가 문제가 있는지 곧 에 발견되지 않고 좌절하는 것이 많다고 생각합니다.

xcpretty



xcpretty란?



xcpretty를 사용하면 xcodebuild가 출력하는 빌드 로그를 깔끔하게 정리하고 색으로 출력할 수 있게 됩니다. 사용 방법도 xcodebuild의 결과를 파이프로 받기 때문에 매우 간단합니다.

로그의 출력 형식을 rspec풍으로 하거나 JUnit 리포트 형식의 xml 출력등도 할 수 있는 것 같습니다.

xcpretty



xcpretty를 Travis CI에 도입



xcpretty를 도입하면 Travis CI에서도 다음과 같이 로그가 깔끔하게 정리되어 색으로 출력할 수 있었습니다. 화상대로 로그의 외형·알기 쉬움의 차이는 역연합니다.

보통





도입 후





설치 및 설정


  • .travis.yml을 준비하여 Travis CI에서 빌드를 실행할 수 있도록 합니다.
  • htps : // 기주 b. 이 m/라아오보오/Xcp렙 ty사 mpぇ/bぉb/마s r/. t ゔぃ s. yml

  • gem으로 xcpretty 설치
  • Gemfile을 리포지토리의 최상위 레벨에 준비하면 Travis CI가 마음대로 설치합니다.
  • htps : // 기주 b. 코 m / 라 아오 보오 / Xcp Retty mp / / b / b / r / ge m

  • xcodebuild의 출력을 파이프하고 xcpretty에 전달하도록 빌드 명령을 수정합니다.
  • xcodebuild test -scheme XcprettySample -destination "name=iPhone Retina (3.5-inch),OS=7.0" -configuration Debug | bundle exec xcpretty -c
    

    중요한 설정



    Rakefile로 빌드를 하는 경우에 테스트가 떨어지더라도 rake 명령의 종료 상태가 정상이므로 Travis CI적으로는 "Passed"가 되어 버리는 경우가 있었습니다. xcodebuild 명령의 종료 상태를 rake 명령이 이어 주지 않기 때문에, 이것을 회피하기 위해서 xcpretty의 README에도 있는 것처럼, xcpretty 명령의 마지막에 "PIPESTATUS"를 건네주도록 추기해 대응을 실시합니다 했다.
    xcodebuild test -scheme XcprettySample -destination "name=iPhone Retina (3.5-inch),OS=7.0" -configuration Debug | bundle exec xcpretty -c && exit ${PIPESTATUS[0]}
    

    그래서 추천



    이것만으로 로그가 깔끔하게 정리되어 테스트 결과가 매우 보기 쉬워져 개발 효율이 올라가므로 추천합니다.

    좋은 웹페이지 즐겨찾기