Android Studio Junit5 설정 방법(Test events were not received)

DoDoBest

·

2024. 1. 1. 08:05

 

Android Stduio에서 유닛 테스트를 실행한 후, Test events were not received 오류가 나왔다.

org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:testDebugUnitTest'.
Caused by: org.gradle.api.tasks.testing.TestExecutionException: No tests found for given includes: [com.github.dodobest.fruitcardgame.model.game.CardDeckImplTest](--tests filter)

 

Junit5를 실행하기 위한 gradle 설정이 누락되어 그렇다.

 

Android 공식 문서에서는 기본적으로 JUnit 4를 이용한 방법을 소개하고 있다.

https://developer.android.com/training/testing/local-tests#dependencies

 

로컬 단위 테스트 빌드  |  Android 개발자  |  Android Developers

이 페이지는 Cloud Translation API를 통해 번역되었습니다. Switch to English 로컬 단위 테스트 빌드 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 로컬 테스트는 And

developer.android.com

 

 

Junit5를 위한 설정은 다음과 같다.

1. dependency 추가

아래 3가지를 Module 수준의 build.gradle에 추가한다.

ParameterizedTest를 사용하지 않는다면 junit-jupiter-params를 추가하지 않아도 된다.

testImplementation "org.junit.jupiter:junit-jupiter-api:5.10.1"
testRuntimeOnly  "org.junit.jupiter:junit-jupiter-engine:5.10.1"
testImplementation "org.junit.jupiter:junit-jupiter-params:5.10.1"

 

dependency의 최신 버전은 아래 사이트에서 확인할 수 있다.

https://central.sonatype.com/namespace/org.junit.jupiter

 

Maven Central: org.junit.jupiter

Explore the collection of packages in org.junit.jupiter

central.sonatype.com

 

2. useJUnitPlatform 설정

Module 수준의 build.gradle에 useJUnitPlatform를 추가한다. 검색해보면 아래를 추가하라고 되어 있는데

test {
    useJUnitPlatform()
}

 

그러면 test를 찾을 수 없다는 오류가 나온다.

Caused by: org.gradle.internal.metaobject.AbstractDynamicObject$CustomMessageMissingMethodException: Could not find method test() for arguments [build_8vpdqf5t3sao6l0wd3hl5mpvy$_run_closure1@77f8e9f7] on project ':app' of type org.gradle.api.Project.

 

아래와 같이 추가해준다.

tasks.withType(Test) {
    useJUnitPlatform()
}

 

그러면 테스트가 정상적으로 실행된다.