Fastlane 자동 배포에서 UI 테스트를 포함시키는 방법은 무엇인가요?

_____
Q1: Fastlane에서 자동 배포 시 UI 테스트를 포함시키는 방법은 무엇인가요?

A1: Fastlane의 `scan` 액션을 사용하여 UI 테스트를 실행할 수 있습니다. UI 테스트를 포함하여 자동화하려면 `Fastfile` 내에 `scan`을 추가하고, 테스트 대상 및 scheme 등을 지정하면 됩니다.

---

Q2: Fastfile 예제에서 UI 테스트를 실행하는 코드를 어떻게 작성하나요?

A2: 예를 들어, 다음과 같이 `scan`을 추가할 수 있습니다.

```ruby
lane :run_ui_tests do
scan(
scheme: "YourAppUITests", UI 테스트가 포함된 scheme 이름
devices: ["iPhone 14"], 테스트 수행할 시뮬레이터 기기 지정
clean: true, 빌드 클린 수행
build_for_testing: true,
test_without_building: false
)
end
```

`run_ui_tests` lane 이후 자동 배포 lane 내에서 호출하도록 하면 됩니다.

---

Q3: UI 테스트가 실패할 경우 배포를 중단시키려면 어떻게 하나요?

A3: `scan`은 기본적으로 테스트 실패 시 스크립트도 실패로 처리합니다. 따라서 Fastlane은 즉시 실행을 중단하고 오류를 반환합니다. 별도 조치 없이 자동으로 배포가 중단됩니다.

---

Q4: UI 테스트 실행 시 실제 디바이스에서 테스트하고 싶으면 어떻게 해야 하나요?

A4: `devices` 옵션에 실제 연결된 디바이스의 이름을 넣을 수 있습니다.

```ruby
scan(
scheme: "YourAppUITests",
devices: ["My iPhone 13 Pro"],
)
```

단, Mac에 디바이스가 연결되어 있고 Xcode에서 인식되어야 합니다.

---

Q5: CI 환경에서 UI 테스트 포함 자동 배포를 하려면 어떤 점을 주의해야 하나요?

A5: CI 환경에서는 시뮬레이터가 제대로 동작하는지, Xcode 버전이 맞는지, 코드 서명과 프로비저닝 프로파일이 정확히 설정되어 있는지 반드시 확인해야 합니다. 또한, 시뮬레이터가 자동으로 실행되고 테스트가 종료되는지 확인하기 위해 `scan` 옵션을 적절히 설정하세요.

---

요약:
- UI 테스트는 Fastlane 내 `scan` 액션을 사용해 포함 가능
- `scan`에 테스트 대상 scheme, 디바이스 지정
- 테스트 실패 시 배포 자동 중단
- 실제 디바이스 테스트 가능하나 사전 준비 필요
- CI 환경 준비 철저히 하여 테스트 안정성 확보

---

필요시 공식 문서 참고: https://docs.fastlane.tools/actions/scan/
Fastlane을 이용한 자동 배포 설정에서 UI 테스트를 포함시키는 방법에 대해 설명하겠습니다.

Fastlane은 iOS 및 Android 앱의 배포 및 테스트를 자동화할 수 있는 도구로, UI 테스트를 자동화하는 방법도 지원합니다.

1. Fastlane 설치 먼저 Fastlane이 설치되어 있어야 합니다.

다음 명령어를 통해 설치할 수 있습니다.

```bash sudo gem install fastlane -NV ```

2. Fastlane 초기화 프로젝트 디렉토리에서 Fastlane을 초기화합니다.

```bash cd your_project_directory fastlane init ``` 초기화 과정에서 여러 질문에 답하고, 필요한 설정 파일이 생성됩니다.



3. UI 테스트 프레임워크 선택 iOS의 경우 XCUITest 프레임워크를 사용할 수 있으며, Android의 경우 Espresso 또는 UIAutomator를 사용할 수 있습니다.

각 플랫폼에 맞는 UI 테스트 환경을 설정해야 합니다.

일반적으로 Xcode 또는 Android Studio의 UI 테스트 생성 기능을 통해 이를 수행합니다.



4. Fastlane Lane 설정 `Fastfile`을 열고 적절한 lane을 정의합니다.

UI 테스트를 포함하는 배포 및 테스트 작업을 위한 lane을 추가할 수 있습니다.

예시 (iOS의 경우): ```ruby platform :ios do desc "Run UI tests and deploy" lane :deploy do capture_screenshots Optional: 스크린샷 캡처 gym 빌드 run_tests UI 테스트 실행 pilot TestFlight 배포 end end ```

5. UI 테스트 실행 `run_tests`는 UI 테스트를 실행하는 Fastlane의 기본 액션입니다.

XCUITest의 경우, `scan` 액션을 사용할 수도 있습니다.

스크립트 안에 테스트 명령어를 추가할 수 있습니다.

예시: ```ruby scan( scheme: "YourUITestScheme", devices: ["iPhone 14"], try_count: 3, 실패시 재시도 설정 clean: true 테스트 실행 전 클린 빌드 ) ```

6. Fastlane 실행 이제 UI 테스트와 함께 배포를 자동화 할 준비가 완료되었습니다.

Fastlane을 실행하여 설정한 lane을 테스트합니다.

```bash fastlane deploy ```

7. 결과 확인 Fastlane이 실행된 후, UI 테스트 결과와 배포 결과를 확인합니다.

Fastlane이 테스트를 성공적으로 완료하면, TestFlight 또는 지정된 배포 채널로 앱이 배포됩니다.

결론 Fastlane을 사용하여 UI 테스트를 포함한 자동 배포를 설정하는 것은 사용자가 효과적으로 모바일 애플리케이션의 품질을 유지하면서 배포 프로세스를 효율적으로 수행할 수 있게 해줍니다.

각 단계에서 문제가 발생할 수 있으니, 충분한 테스트와 추가 설정이 필요할 수 있습니다.

작성자: 최현우 [비회원] | 작성일자: 1년 전 2025-04-15 23:41:00
조회수: 154 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.