Android Gradle의 testCompile 및 androidTestCompile에 대해 혼동에 대해
나는 테스트 세계에 익숙하지 않고 Android 테스트 세계에 더 익숙합니다. 안드로이드 테스트에 도움이되는 Robolectric에 대한 연구를하는 동안 가장 혼란스러운 점이 있습니다. 여기서 웹 testCompile
에서 Robolectric을 참조 할 때 gradle 빌드 확장의 말씀에 키워드를 사용하는 것을 볼 수 androidTestCompile
있습니다. 확실히 둘 다 유효 할 수 없습니까?
Robolectric을 사용할 때 둘 다의 차이점과 이들 중 어느 것이 사용되어야합니까?
단순히 testCompile
단위 테스트의 구성 ( SRC / 테스트에 있음 )이며 androidTestCompile
테스트 API ( SRC / androidTest에 있음 )에 사용됩니다. 단위 테스트를 수행 계획을 수행 testCompile
합니다.
업데이트 : 둘 사이의 주요 차이점은 test
소스 세트가 또는 일반 자바 JVM에서 androidTest
실행 되는 반면 소스 세트 테스트는 안드로이드 기기 (또는 에뮬레이터)에서 실행된다는 것입니다.
질문에 답 생각 -robolectric에 testCompile
왜, robolectric은 모든 안드로이드 장치 동작을 조롱하는 JVM에서 실행되기 때문입니다.
testCompile은 Android 및 android에서 제공하는 작업을 실행하는 동안 gradle이 사용하는 "일반적인"Android 폴더입니다.
androidTestDebug는 androidTest 폴더에서 테스트를 선택하고 testDebug는 테스트 폴더에서 테스트를 선택합니다.
다시 이것들은 관례에 앞서 만 구현 된 구성에 대한 소스 세트를 제공 할 수 있습니다.
참고 : 에스프레소는 robolectric에서 벗어나려고하는 멋진 라이브러리입니다. :)
// 단위 테스트
testCompile 'junit:junit:4.12'
위 코드는 android studio의 build.gradle 파일에있는 JUnit 4의 파일입니다. JUnit이 JVM에서 실행되고 실행되는 데 장치 또는 에뮬레이터가 필요하지 않으므로 testCompile이 있음을 알 수 있습니다. 이는 또한 JUnit이 테스트를 실행하는 데 필요한 경우 "MOCK"이 필요함을 의미합니다.
// 구조화 된 단위 테스트
androidTestCompile('com.android.support.test:runner:0.5', {
exclude group: 'com.android.support', module: 'support-annotations'
})
이제 여기에 androidTestCompile이 표시됩니다. 이번에는 테스트에 기기 또는 에뮬레이터를 사용하려고하기 때문에 계측 테스트입니다. 더 명확한 설명을 위해 developer.android.com에서 읽는 것이 좋습니다.
JVM 테스트 또는 단위 테스트에 대한 추가 비용 (테스트는 Java 환경에만 필요하지 않음).
testCompile 지시문을 사용합니다. 예 :
dependencies {
testCompile gradleTestKit()
}
계측 테스트에 대한 사용을 추가하기 위해 (이 테스트는 주로 Android 환경에 의존) androidTestCompile
지시문 을 사용합니다 .
'IT' 카테고리의 다른 글
여러 프로젝트가있을 때 Scrum은 어떻게 작동합니까? (0) | 2020.09.12 |
---|---|
현재 Functional Reactive Programming 구현 상태는 어떻습니까? (0) | 2020.09.12 |
KVO 및 ARC 제거 방법 (0) | 2020.09.12 |
console.log javascript [기능] (0) | 2020.09.12 |
Git이 파일을 바이너리로 취급하게 지불해야합니까? (0) | 2020.09.12 |