분명히이 문제를 해결하려면 올바른 가져 오기 명령문이 필요합니다. 에 대한 문서에AndroidJUnit4
따르면 이것은
import android.support.test.runner.AndroidJUnit4;
그렇게하면 Android Studio runner
가 빨간색으로 강조 표시 되고 “기호 ‘러너’를 확인할 수 없습니다”라고 불평합니다.
배경
UI Automator를 사용하여 테스트 를 설정하기 위해 Android 개발자 사이트의 학습서를 따라이 시점에 도달했습니다 . 발생한 첫 번째 문제의 그 것이었다 com.android.support:support-v4:22.2.0
과 com.android.support.test:runner:0.2
의 다른 버전에 따라 달라집니다 com.android.support:support-annotations
. 이 Android 버그 보고서 의 제안을 따르고 allprojects
프로젝트에 다음을 추가했습니다 build.gradle
.
configurations.all {
resolutionStrategy.force 'com.android.support:support-annotations:22.1.0'
}
이것은 즉각적인 오류를 해결했지만 현재의 문제로 이어질 것으로 생각됩니다. 누구 든지이 문제를 해결하는 방법에 대한 제안이 있습니까?
`./gradlew : app : dependencies의 관련 섹션
androidTestCompile - Classpath for compiling the androidTest sources.
+--- com.jayway.android.robotium:robotium-solo:5.2.1
+--- com.squareup:fest-android:1.0.8
| \--- org.easytesting:fest-assert-core:2.0M10
| \--- org.easytesting:fest-util:1.2.5
+--- com.android.support.test:runner:0.2
| +--- junit:junit-dep:4.10
| | \--- org.hamcrest:hamcrest-core:1.1
| +--- com.android.support.test:exposed-instrumentation-api-publish:0.2
| \--- com.android.support:support-annotations:22.0.0 -> 22.2.0
+--- com.android.support.test:rules:0.2
| \--- com.android.support.test:runner:0.2 (*)
\--- com.android.support.test.uiautomator:uiautomator-v18:2.1.0
compile - Classpath for compiling the main sources.
+--- com.android.support:appcompat-v7:22.2.0
| \--- com.android.support:support-v4:22.2.0
| \--- com.android.support:support-annotations:22.2.0
+--- com.android.support:support-v4:22.2.0 (*)
+--- com.google.android.gms:play-services:6.1.71
| \--- com.android.support:support-v4:20.0.0 -> 22.2.0 (*)
+--- com.crashlytics.android:crashlytics:1.+ -> 1.1.13
\--- com.jakewharton:butterknife:5.1.2
답변
답변
테스트 클래스를 src / test 에 넣는 실수를 저질렀습니다 . 그것들을 src / androidTest / java /로 옮긴 후 의존성이 해결되었습니다.
답변
자, 여기 실수와 내 것이 있습니다!
우리가 코드 파이스 쓰기 위하여려고하는 경우에 지역 단위 테스트 우리가 사용하지 말아야 @RunWith(AndroidJUnit4.class)
AndroidJUnit4를 사용하지 않는 우리 원인을하지만 우리는 Junit4이 필요합니다. 그래서 우리는 작성해야합니다 @RunWith(JUnit4.class)
. 물론 Java 테스트 파일은 app/src/test/java/your.package.name
디렉토리 아래에 있습니다.
그렇지 않으면 (!!) 우리는 Android Instrumented Unit Test 를 작성하려면 테스트 java 파일을 app/src/androidTest/java/your.package.name
디렉토리에 넣고 주석을 사용해야합니다.@RunWith(AndroidJUnit4.class)
답변
최신 정보
Android 테스트 라이브러리는 이제 AndroidX의 일부입니다. 공식 문서 에있는 올바른 Gradle 종속성을 사용하십시오 .
원래 답변
여기에서 내가 사용 하는 것보다 최신 버전의 테스팅 지원 라이브러리가 있음을 발견했습니다.
dependencies {
androidTestCompile 'com.android.support.test:runner:0.5'
androidTestCompile 'com.android.support.test:rules:0.5'
androidTestCompile 'com.android.support.test.uiautomator:uiautomator-v18:2.1.2'
}
참고 :이 라이브러리의 최신 버전을 사용해야합니다. 이 질문은 Android 테스트 지원 라이브러리가 새로 만들어졌고 여기에있는 버전 번호가 매우 오래된 시점입니다.
답변
앱의 build.gradle 파일을 약간 변경하여 문제를 해결했습니다. 에서 dependencies { ... }
섹션에서 다음 줄을 포함해야합니다 :
debugImplementation 'com.android.support.test:runner:1.0.1'
또는 그 시점에서 최신 버전이 무엇이든 ( ...Compile
더 이상 사용되지 않으며로 대체되었습니다 ...Implementation
). 의 사용에 유의 하십시오 debugImplementation
. Android Studio에서 자동 포함 제안androidTestImplementation
했지만 작동하지 않았습니다.
각 종속성의 범위를 변경할 수있는 앱 모듈의 종속성 아래에서 프로젝트 구조를 보면 테스트에서 디버그로 변경하는 방법을 알았습니다 (아래 참조).
답변
이 OP는 현재 4 세인 2019 년에 출시되었으므로 Android X를 사용하는 경우 AndroidJUnit4.class
더 이상 사용되지 않으며, 여기에 오류가 하나 더 있습니다 androidx.test.ext.junit.runners.AndroidJUnit4
. 문제를 해결하기 위해이 링크를 읽는 것이 좋습니다.
androidJUnit4.class는 더 이상 사용되지 않습니다 : androidx.test.ext.junit.runners.AndroidJUnit4를 사용하는 방법은 무엇입니까?
Junit4 테스트를 androidx로 마이그레이션 : ‘대리자 러너를로드 할 수없는 원인’은 무엇입니까?
나를 위해 Android Studio는 교체를 제안했습니다.
@RunWith(AndroidJUnit4.class)
더 이상 사용되지 않는
@RunWith(AndroidJUnit4ClassRunner.class)
이
androidx.test.ext.junit.runners.AndroidJUnit4
이것으로
import androidx.test.internal.runner.junit4.AndroidJUnit4ClassRunner;
그 후에 오류가 사라졌지 만 ok를 실행하는 동안 미래의 테스트인지 모르겠습니다!
답변
필자의 경우 이것은 릴리스 변형에 도움이되었습니다.
android {
...
testBuildType "release"
}