일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 암호학
- architecture
- 쿠링
- Coroutine
- Codeforces
- pandas
- MiTweet
- TEST
- Compose
- livedata
- 코루틴
- androidStudio
- activity
- Rxjava
- MyVoca
- 코드포스
- GitHub
- boj
- relay
- Coroutines
- Python
- android
- Gradle
- AWS
- textfield
- 프로그래머스
- Kotlin
- ProGuard
- Hilt
- 백준
- Today
- Total
목록TEST (5)
이동식 저장소

``androidTest`` 폴더에 있는 instrumented test는 에뮬레이터를 통해 테스트될 수 있다. 그런데 에뮬레이터는 메모리도 많이 잡아먹고, UI까지 전부 그리기 때문에 unit test보다 더 무겁다는 느낌이 있다. 에뮬레이터를 매번 켜는 게 번거롭기도 하고, 그래서 그런지 개발하는 입장에서도 자주 실행하지 않게 된다. 테스트는 모름지기 자주 실행되어야 하는 법이거늘. Gradle Managed Devices 매번 에뮬레이터를 켜는 대신 Gradle Managed Devices를 사용하면 instrumented test를 더 간편하게 실행할 수 있다고 한다. 대략 다음의 작업을 대신 해 준다. 기기와 관련된 작업을 대신 처리 (기기를 켜고 끄는 등) 기기를 켜는 시간을 단축하고 테스트 ..
모든 unit test를 실행하는 커맨드는 다음과 같다. gradlew test Android test를 실행하는 커맨드는 다음과 같다. gradlew connectedAndroidTest 놀랍게도 ``connectedAndroidTest``의 앞 글자만 따서 실행할 수도 있다. gradlew cAT

3달 전에 이런 글을 쓴 적이 있다. [Kotlin] 코루틴의 실행 순서와 테스트 코드 비동기 코드는 본질적으로 어렵다. 제대로 공부하지 않은 비동기 코드는 더 어렵다. 지난 몇 일간 코루틴 ``ViewModel`` 코드를 테스트하다 아주 열불이 나서..;; 이참에 제대로 다시 공부해 보자. ``s thinking-face.tistory.com 위의 글에서 언급된 ``ViewModel`` 테스트는 여전히 해결되지 않았다. 실행할 때마다 결과가 달라지는 테스트라니.. 심지어 원격 빌드에서도 실패하는 바람에 빌드가 멈춘 적도 있다. 하지만 7월의 마지막 주말, 바로 오늘, 끈질기게 나를 물고 늘어지던 버그를 바로 오늘 해결했다. 이 글에서는 문제 상황과 문제를 풀기 위한 나의 눈물겨운 싸움을 기록하려 한다...

[Android] R8 컴파일러로 앱 경량화하기 왜 경량화해야 하는가? APK 파일에는 실행 가능한 바이트코드가 DEX(Dalvik Executable) 형태로 저장되어 있다. DEX 파일에는 앱에서 실행되는 Android framework 메서드, 개발자가 직접 작성한 메서드 등의 thinking-face.tistory.com 위 글에서 나는 ``debug``와 ``release`` 모두에 경량화를 적용했다고 말했다. 그런데 경량화를 적용하면 instrumented test가 실행되지 않는다. 정확히는 테스트를 인식하지 못한다. 해결법 ``build.gradle``에서 ``minifyEnabled``를 ``false``로 설정하면 해결된다. 경량화가 원인인 건 맞는데, 정확히 어떤 매커니즘인지 모르겠다..
비동기 코드는 본질적으로 어렵다. 제대로 공부하지 않은 비동기 코드는 더 어렵다. 지난 몇 일간 코루틴 ``ViewModel`` 코드를 테스트하다 아주 열불이 나서..;; 이참에 제대로 다시 공부해 보자. ``suspend`` 함수의 실행 순서 ``suspend`` 함수도 일반 함수처럼 순차적으로 실행된다. suspend fun function1() { println("fun 1") } suspend fun function2() { println("fun 2") } fun main() = runBlocking { function1() function3() } fun 1 fun 2 일반 함수를 섞어도 똑같다. suspend fun function1() { println("fun 1") } suspend f..