iOS Jenkins + fastlane + Slack에서 테스트 실행

3226 단어 iOSJenkins
어느 회사에도 1명은 있다고 하는 Jenkins 아저씨.
뭐야 미하라는 건가?
맞습니다. 제가 란체스터 젠킨스 삼촌입니다.
놀라움,
·
·

음, 주제로 돌아갑니다.
테스트 코드는 쓰고 있지만 별로 실행되지 않기 때문에 활용되지 않는다.
이것은 모타이 나이. 그렇다면 자동으로 테스트를 실행합시다!
사용하는 것은
  • Jenkins
  • fastlane
  • Slack

  • fastlane의 설정은?



    Fastfile은 다음과 같이 만들었습니다.
    default_platform(:ios)
    
    platform :ios do
            before_all do
                    xcode_select "/Applications/Xcode 9.4.1.app"
            end
    
            lane :run_test do
                    run_tests(workspace: "work_space_name.xcworkspace",
                            devices: ["iPhone 8"],
                            scheme: "scheme_name",
                            slack_url: "https://hooks.slack.com/services/xxxxxxxx",
                            slack_message: "メッセージ",
                            clean: true
                    )
            end
    end
    

    xcode_select



    Xcode 버전을 지정합니다.

    run_tests


  • workspace ... workspace 이름
  • devices ... 실행할 장치를 지정 (복수 지정 가능)
  • scheme ... scheme 이름
  • slack_url ... slack web hook URL
  • slack_message ... Slack 알림 메시지.
  • clean ... true로 깨끗한 실행

  • run_tests 매개변수에 대해 자세히 알아보기
    fastlane docs

    Jenkins 설정은?



    일정



    1일 1회, 심야에 실행시키고 싶으므로, 테스트용으로 작업을 작성해 매일 0시에 실행시킵니다.
    SCM 폴링에 체크하고 스케줄은 아래와 같이 설정
    
    H 0 * * *
    

    실행 명령


    bundle exec fastlane run_test
    

    테스트가 완료되면 Slack에 알립니다.

    빌드 후 처리



    fastlane에서 테스트가 실행되면 report.junit이 생성됩니다. 이 파일의 경로를 테스트 결과 XML로 설정하면 아래와 같은 테스트 결과 페이지가 표시됩니다.


    테스트 결과 페이지



    Fastfile의 slack_message로 설정하면 편리합니다.
    http://path/to/job/lastCompletedBuild/testReport/
    

    마지막으로



    푹신!
    가샨! 뽀뽀뽀뽀뽀뽀뽀뽀뽀뽀뽀뽀

    좋은 웹페이지 즐겨찾기