Jenkins에서 fastlane을 사용하여 XCTest를 진행합니다.

7184 단어 fastlaneiOS

전제 조건


현재 맡고 있는 프로젝트는 Jenkins로 자동 테스트를 하고 있습니다.
구축 설정을 보더라도 무엇을 하는지 알 수 없는 플러그인은 GUI를 복잡하게 합니다.
이번 목적은fastlane을 사용하여 가독성을 높이는 것이다.
CI 도구를 마이그레이션할 때 얻을 수 있는 이점도 있습니다.✨

fastlane으로 뭐가 편해요?


나는 테스트를 도입하는 각도에서 열거해 보았다
  • 복잡한 xcodebuild 명령을 쉽게 작성할 수 있음
  • 테스트 결과 보고서 작성 가능
  • 테스트 결과 알림 가능 slack
  • Jenkins를 통해 보고서 또는 Slack 알림을 설정할 수 있습니다.
    fastlane이 더 쓰기 쉬워요.

    배치


    팩스 설치


    fastlane의 설치 기사가 많아서요.
    저기 참조하세요...

    항목에 넣다


    단일 테스트 디렉토리cd
    TestProject
    ├── TestProject
    ├── TestProject.xcodeproj
    ├── TestProject.xcworkspace
    ├── TestProjectTests ←ココ
    └── TestProjectUITests
    
    단일 테스트 디렉토리fastlane init
    >> fastlane init                                                                                                                                                 [~/workspace/iOS/SlideMenuControllerSwift]
    [✔] 🚀
    [✔] Looking for iOS and Android projects in current directory...
    [12:53:41]: Created new folder './fastlane'.
    [12:53:41]: Detected an iOS/macOS project in the current directory: 'プロジェクトご名.xcodeproj'
    [12:53:42]: -----------------------------
    [12:53:42]: --- Welcome to fastlane 🚀 ---
    [12:53:42]: -----------------------------
    [12:53:42]: fastlane can help you with all kinds of automation for your mobile app
    [12:53:42]: We recommend automating one task first, and then gradually automating more over time
    [12:53:42]: What would you like to use fastlane for?
    1. 📸  Automate screenshots
    2. 👩‍✈️  Automate beta distribution to TestFlight
    3. 🚀  Automate App Store distribution
    4. 🛠  Manual setup - manually setup your project to automate your tasks
    ?
    
    실행 시 사용 목적 문의
    왜냐하면 이번에는fastlane으로 자동 테스트를 하기 때문이다4.
    [12:53:54]: Continue by pressing Enter ⏎
    
    설정이 끝난 후 Enter 를 누르면 몇 번 말하므로 Enter 를 누릅니다.
    그리고fastlane 폴더를 생성합니다. 그 중에서 생성AppfileFastfile.Appfileは 응용 프로그램 발표 자동화 등 처리 파일.이번에는 무시하거나 삭제할 수 있다.
    TestProjectTests
    └── fastlane
       ├── Appfile
       └── Fastfile
    

    scan 설정

    scan 테스트를 쉽게 수행할 수 있는 명령
    https://docs.fastlane.tools/actions/scan/#scan
    scan 명령을 사용하여 테스트를 수행하기 위해 Scan 설정을 수행합니다.
    다음 명령을 사용하여 스크립트 파일 만들기
    >> fastlane scan init
    
    그런 다음 생성fastlane/Scanfile스캔 파일에 기본 설정을 기록합니다.
    Scanfile
    # scanコマンドのデフォルトの設定(https://docs.fastlane.tools/actions/scan/)
    # Projectの場合はproject("TestProject.xcodeproj")
    workspace("TestProject.xcworkspace") 
    sdk("iphonesimulator") 
    configuration("Debug") 
    # シュミレータの設定
    destination("platform=iOS Simulator,name=iPhone X,OS=12.4") 
    # ビルド時にクリーンを行う
    clean(true)
    # テスト結果をjunit形式で作成する
    output_types("junit") 
    

    빠른 파일 설정


    여기에 기록합니다lane.방법 같은 인상.unit_testui_testlane.slack_url만 추가하면 테스트 결과를 slack에 간단하게 알릴 수 있습니다.
    Fastfile
    default_platform(:ios)
    
    platform :ios do
      # 毎回呼ばれる
      before_all do
        # pod install
        cocoapods
      end
    
      desc "単体テストを実行 🚀"
      lane :unit_test do
        # Scanfileに書いていない部分を指定しています。
        scan(scheme: "TestProjectTests", # Schemeを指定
          slack_url: "SlackのWebhookURLを入れる", # Slackから取得したWebhookURLを指定
          slack_message: "単体テストの結果 🚀" # Slackから送られるメッセージのタイトルを指定
        )
      end
    
      desc "UIテストを実行 🚀"
      lane :ui_test do
        scan(scheme: "TestProjectUITests",
          slack_url: "SlackのWebhookURLを入れる",
          slack_message: "UIテストの結果 🚀"
        )
      end
    end
    

    Jenkins 구성


    ※ CI 환경에 CocoaPods 및 fastlane 설치
    Jenkins 구축 설정에 포함
    운행 케이스
    # fastlaneでunit_testを実行🚀
    bundle exec fastlane unit_test
    

    현재 작업을 실행할 때 테스트는fastlane에서 실행되고 결과를 Slack에 알립니다.

    Slack 결과 알림


    이런 느낌으로 보여요.실패했네...

    총결산


    젠킨스의 설정과 플러그인에 오염된 테스트용 작업이 예뻐졌어요.✨
    Slack으로 테스트 결과 보고 URL을 알려주는 것이 더 편리합니다.🚀

    좋은 웹페이지 즐겨찾기