XCTest 실행

이 가이드에서는 Firebase Test Lab에서 테스트할 XCTest를 준비하는 방법을 설명합니다.

1단계: 프로젝트의 파생 데이터 위치 구성

Xcode는 컴파일된 iOS 아티팩트(빌드한 모든 테스트 포함)를 파생 데이터 디렉터리에 저장합니다. 원하는 경우 이 디렉터리의 기본 위치를 유지할 수 있지만 특히 Test Lab을 사용하여 테스트를 자주 실행하려는 경우 파일에 보다 쉽게 액세스할 수 있는 위치를 선택하는 것이 도움이 됩니다.

  1. Xcode에서 프로젝트를 엽니다.
  2. macOS 메뉴 바에서 파일 > 프로젝트 설정...을 선택합니다.
  3. 파생 데이터 드롭다운을 기본 위치에서 커스텀 위치로 변경합니다.
  4. 드롭다운 아래의 필드에서 테스트를 출력할 Xcode의 위치를 선택합니다. (FOLDER_WITH_TEST_OUTPUT)

2단계: 일반 테스트 파일 빌드

Test LabXCTest 프레임워크를 사용하여 단위 테스트 및 UI 테스트를 실행합니다. Test Lab 기기에서 앱의 XCTest를 실행하려면 일반 iOS 기기에서 테스트할 수 있도록 앱을 빌드합니다.

  1. Xcode 작업공간 창 상단에 있는 기기 드롭다운에서 일반 iOS 기기를 선택합니다.
  2. macOS 메뉴 바에서 제품 > 빌드 대상 > 테스트를 선택합니다.

대신 명령줄에서 XCTest를 빌드할 수 있습니다. 터미널에서 다음 명령어를 사용합니다.

프로젝트

xcodebuild -project PATH/TO/YOUR_WORKSPACE/YOUR_PROJECT.xcodeproj \
   -scheme YOUR_SCHEME \
   -derivedDataPath FOLDER_WITH_TEST_OUTPUT \
   -sdk iphoneos build-for-testing

작업공간

xcodebuild -workspace PATH/TO/YOUR_WORKSPACE.xcworkspace \
   -scheme YOUR_SCHEME \
   -derivedDataPath FOLDER_WITH_TEST_OUTPUT \
   -sdk iphoneos build-for-testing

3단계: 테스트 서명 및 확인

  1. 앱과 테스트의 모든 아티팩트가 서명되었는지 확인합니다. 예를 들어 프로비저닝 프로필 및 ID와 같은 서명 설정을 지정하여 Xcode를 통해 이 작업을 수행할 수 있습니다. 자세한 내용은 Apple 코드 서명을 참고하세요.

  2. codesign --verify --deep --verbose /path/to/MyApp.app을 실행하여 앱 서명을 확인합니다. 여기서 'MyApp'은 압축을 푼 폴더 안에 있는 앱 이름입니다. 이는 프로젝트마다 다릅니다. 예상 출력은 MyApp.app: valid on disk입니다.

  3. XCUITest를 실행 중이라면 codesign --verify --deep --verbose /path/to/MyTest-Runner.app을 실행하여 테스트 및 실행자를 확인해야 합니다. 여기서 'MyTest'는 압축을 푼 폴더 안에 있는 실행자 이름입니다. 이는 프로젝트마다 다릅니다. 예상 출력은 MyTest-Runner.app: valid on disk입니다.

4단계: 앱 패키징 및 업로드 테스트

  1. 테스트가 성공적으로 빌드되면 압축하여 Test Lab에 업로드합니다.

    cd FOLDER_WITH_TEST_OUTPUT/Build/Products : \
    zip -r MyTests.zip Debug-iphoneos YOUR_SCHEME_iphoneosDEPLOYMENT_TARGET-arm64.xctestrun
    

테스트 파일을 수동으로 압축하여 테스트를 패키징할 수도 있습니다.

  1. Finder를 열고 FOLDER_WITH_TEST_OUTPUT으로 이동합니다.

  2. 프로젝트 이름이 프리픽스로 되어있는 폴더를 열고 내부의 Build/Products 폴더로 이동합니다.

  3. Debug-iphoneosYOUR_SCHEME_iphoneosDEPLOYMENT_TARGET-arm64.xctestrun 폴더를 선택한 후 압축합니다.

5단계: (선택사항) 로컬에서 테스트 실행

Test Lab으로 테스트를 실행하기 전에 다음과 같이 USB 연결 기기로 로컬에서 테스트를 실행하여 동작의 품질을 검사할 수 있습니다.

xcodebuild test-without-building \
    -xctestrun "Derived Data/Build/Products/YOUR_SCHEME.xctestrun" \
    -destination id=your-phone-id

다음 단계

Firebase Console 또는 gcloud CLI에서 테스트를 업로드하고 실행합니다.