관리 메뉴

김종권의 iOS 앱 개발 알아가기

[iOS - swift] 1. xcodebuild로 테스트 돌리기 - 개념 (xcodebuild, unit test, ui test) 본문

iOS 응용 (swift)

[iOS - swift] 1. xcodebuild로 테스트 돌리기 - 개념 (xcodebuild, unit test, ui test)

jake-kim 2024. 8. 19. 01:58

1. xcodebuild로 테스트 돌리기 - 개념 (xcodebuild, unit test, ui test)

2. xcodebuild로 테스트 돌리기 - 결과 얻어오기 (xcresult, junit, xml)

3. xcodebuild로 테스트 돌리기 - xcresult 파일 변환하여 분석하기 (xcrun xcresulttool, xcpretty, junit)

xcodebuild란?

  • 커멘드 라인으로 build, query, analyze, test, archive할 수 있는 라이브러리
  • Xcode는 GUI 방식인 반면, xcodebuild는 커멘드 라인 방식
  • xcodebuild를 잘 사용하면 CI/CD에서도 빌드를 돌릴 수 있고 활용하면 프로젝트 구조 파악이 용이

xcodebuild 기능 살펴보기

  • xcodebuild를 통해 Targets, Build Configuration 확인
    • xcodebuild -list -project <YourApp.xcodeproj>
App% xcodebuild -list -project App.xcodeproj

Information about project "App":
    Targets:
        App
        AppTests
        AppUITests

    Build Configurations:
        Debug
        Release
  • xcodebuild를 통해 configuration 빌드
xcodebuild -target <your_target_name> -xcconfig <your_configuration_file>.xcconfig
  • xcodebuild를 통해 유닛 테스트 빌드 수행방법
xcodebuild test [-workspace <your_workspace_name>]
                [-project <your_project_name>]
                -scheme <your_scheme_name>
                -destination <destination-specifier>
                [-only-testing:<test-identifier>]
                [-skip-testing:<test-identifier>]

ex) 시뮬레이터 iPhone 15로 유닛 테스트 빌드 돌리기

xcodebuild test -scheme App -destination 'platform=iOS Simulator,name=iPhone 15'

  • 이 밖에도 유닛 테스트를 돌릴 수 있는 옵션은 다양하게 존재
# 1. 
xcodebuild test [-workspace <your_workspace_name>]
                [-project <your_project_name>]
                -scheme <your_scheme_name>
                -destination <destination-specifier>
                [-only-testing:<test-identifier>]
                [-skip-testing:<test-identifier>]

# 2 .
xcodebuild build-for-testing [-workspace <your_workspace_name>]
                             [-project <your_project_name>]
                             -scheme <your_scheme_name>
                             -destination <destination-specifier>

# 3.  
xcodebuild test-without-building [-workspace <your_workspace_name>]
                                 [-project <your_project_name>]
                                 -scheme <your_scheme_name>
                                 -destination <destination-specifier>
                                 [-only-testing:<test-identifier>]
                                 [-skip-testing:<test-identifier>]

# 4. 
xcodebuild test-without-building -xctestrun <your_xctestrun_name>.xctestrun
                                 -destination <destination-specifier>
                                 [-only-testing:<test-identifier>]
                                 [-skip-testing:<test-identifier>]
  • 위와 같이 xcodebuild로 유닛 테스트를 돌리고, 그 결과로 .xcresult 파일을 얻어와서 이 파일을 가지고 어떤 테스트가 실패하고 성공했는지 분석이 가능
    • 이 파일이 있으면 분석도 용이하고, CI에도 활용할 수 있는데 이 부분은 다음 글에서 계속..

* 참고

- https://developer.apple.com/library/archive/technotes/tn2339/_index.html

Comments