‘AndroidJUnit4’기호를 확인할 수 없습니다 Classpath for

분명히이 문제를 해결하려면 올바른 가져 오기 명령문이 필요합니다. 에 대한 문서에AndroidJUnit4 따르면 이것은

import android.support.test.runner.AndroidJUnit4;

그렇게하면 Android Studio runner가 빨간색으로 강조 표시 되고 “기호 ‘러너’를 확인할 수 없습니다”라고 불평합니다.

배경

UI Automator를 사용하여 테스트설정하기 위해 Android 개발자 사이트의 학습서를 따라이 시점에 도달했습니다 . 발생한 첫 번째 문제의 그 것이었다 com.android.support:support-v4:22.2.0com.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"
}