Skip to content

에뮬레이터 불필요 androidTest 7개를 feature 모듈 src/test 로 (#1035 실행분) #1089

Closed

Description

@OnlyReadOneBook

#1035 의 설정·타임레터 몫이다. app/src/androidTest 의 7개를 각 feature 모듈 src/test 로 옮긴다.

왜 옮기나

이 테스트들은 에뮬레이터가 필요 없다. createComposeRule 로 화면을 띄우고 손으로 만든 fake 를 물려 semantics 를 단언할 뿐, Hilt 앱 그래프도 실제 Activity 도 쓰지 않는다.

그런데 app/src/androidTest 에 있다는 이유로 Gradle Managed Device 스위트에 묶여 있고, 그 스위트는 cron: 17 18 * * 2,5 로만 돈다(PR 트리거 없음). 실행 이력 0건이다. 같은 코드가 모듈 src/test 에 있었으면 매 PR :koverXmlReportCi 에서 돌았다.

대상 7개

목적지 파일
feature/setting/presentation SettingFlowAndroidTest · SettingAccountSecurityAndroidTest · SettingCompletionAndroidTest · ReceiverSelectionAndroidTest · ReceiverSelectionBoundaryAndroidTest
feature/timeletter/presentation TimeLetterFlowAndroidTest · TimeLetterLifecycleAndroidTest

SettingImplementedCoverageAndroidTest 는 app 에 남는다 — @HiltAndroidTest + 실제 Activity 라 앱 그래프가 필요하다.

착수 조건 — #1035 파일럿이 먼저다

#1035 가 feature/receiver/presentation 에서 1개를 먼저 옮겨 Robolectric 아래에서 무엇이 깨지는지 정리한다(애니메이션 진행·waitUntil 타이밍이 실기기와 다르다). 그 결과가 나온 뒤 시작하면 같은 함정을 두 번 밟지 않는다.

feature/timeletter/presentation 에는 이미 Robolectric Compose 테스트(TimeLetterWriteScreenTest)가 돌고 있어 설정을 본뜰 수 있다. 두 모듈 모두 libs.robolectric 이 이미 선언돼 있다.

전부 옮기는 게 목표가 아니다

파일럿에서 Robolectric 이 감당 못 하는 게 드러나면 그 파일은 app 에 남긴다. 옮길 수 있는 걸 옮겨 PR 마다 돌게 만드는 게 목표다.

완료 조건

  • 옮긴 파일이 :koverXmlReportCi 로 실행되고 통과한다
  • app/src/androidTest 에서 사라지고 :app:compileDebugAndroidTestKotlin 이 통과한다
  • 단언 의미는 바꾸지 않는다 — 옮기면서 고쳐야 했던 것은 PR 본문에 남긴다

참고

Activity

  1. changed the title [-]test(setting,timeletter): 에뮬레이터 불필요 androidTest 7개를 feature 모듈 src/test 로 (#1035 실행분)[/-] [+]에뮬레이터 불필요 androidTest 7개를 feature 모듈 src/test 로 (#1035 실행분)[/+] on Aug 28, 2026
  2. added
    test테스트·검증·회귀 방지 작업
    and removed on Aug 28, 2026
  3. added a commit that references this issue on Aug 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

area:setting설정 기능 영역area:timeletter타임레터 기능 영역test테스트·검증·회귀 방지 작업

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions