androidJUnit4.class는 더 이상 사용되지 않습니다 : androidx.test.ext.junit.runners.AndroidJUnit4를 사용하는 방법은 무엇입니까?
계측 테스트를 위해
@RunWith(AndroidJUnit4.class)
...에서
import androidx.test.runner.AndroidJUnit4;
내 테스트 사례를 확립하기 위해. 사용할 수있는 힌트되지 않는 것으로 이제이 라인이 표시됩니다 AndroidJUnit4
에서
import androidx.test.ext.junit.runners.AndroidJUnit4
그러나 AndroidJUnit4
명명 된 패키지에서 가져 오려고 하면 오류가 발생 ext
하여 해결할 수 없습니다.
이 문제를 해결하기 위해 gradle에 어떤 패키지를 포함시켜야하는지 알고 있습니까?
AndroidJUnit4의 문서에 따르면 gradle 파일에는 다음 행이 포함되어야합니다.
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
이것을 추가하면 모든 것이 나를 위해 일했습니다.
여전히 작동하지 않으면 프로젝트를 정리하거나 다시 빌드하십시오. 또한 Google의 maven 저장소 에서 현재 버전을 직접 확인할 수 있습니다
@MarcelGangwisch의 솔루션을 시도했지만 빌드에서 리소스를 찾을 수없고 프로젝트를 정리 / 재 구축해도 여전히 작동하지 않는다고 말하는 데 실패하면 다음을 시도하십시오. (@ KrzysztofDziuba의 솔루션을 기반으로 함)
의존성을 변경 한 gradle 파일에서 필요한 유형으로 추가해야합니다.
UI 테스트의 경우 :
androidTestImplementation 'androidx.test.ext : junit : 1.1.0'
단위 테스트의 경우 :
testImplementation 'androidx.test.ext : junit : 1.1.0'
내 경우에는 둘 다 추가하고 이제는 작동합니다.
나를 위해 다음 단계를 수행했습니다.
1. androidx 라이브러리를 여기에 게시 된 라이브러리로 바꿉니다 . 내 최종 app/build.gradle
결과는 다음과 같습니다.
android {
...
defaultConfig {
...
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
...
}
dependencies {
...
testImplementation 'junit:junit:4.12'
// Core library
androidTestImplementation 'androidx.test:core:1.2.0'
// AndroidJUnitRunner and JUnit Rules
androidTestImplementation 'androidx.test:runner:1.2.0'
androidTestImplementation 'androidx.test:rules:1.2.0'
// Assertions
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
androidTestImplementation 'androidx.test.ext:truth:1.2.0'
androidTestImplementation 'com.google.truth:truth:0.42'
// Espresso dependencies
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
}
그런 다음 ExampleInstrumentTest.java
클래스 에서 가져온 모듈을 수동으로 최신 클래스 로 교체했습니다 .
import androidx.test.internal.runner.junit4.AndroidJUnit4ClassRunner;
import androidx.test.platform.app.InstrumentationRegistry;
import androidx.test.rule.ActivityTestRule;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
@RunWith(AndroidJUnit4ClassRunner.class)
public class ExampleInstrumentedTest {
...
@Rule
public final ActivityTestRule<MainActivity> main = new ActivityTestRule<>(MainActivity.class, true);
@Before
public void init() {
...
}
@Test
public void listCount() {
...
}
@Test
public void useAppContext() {
Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
Assert.assertEquals("in.curioustools.aad_x_testing2", appContext.getPackageName());
System.out.println("useAppContext : Test Ran");
}
}
The thing that was bugging me was the fact that InstrumentationRegistery
class was still deprecated. So i used InstrumentationRegistry.getInstrumentation().getTargetContext();
from androidx.test.platform.app.InstrumentationRegistry
class.
I tried all given above until I went to the official Android site, and they suggested importing from androidx.test.ext.junit.runners.AndroidJUnit4
instead of androidx.test.runner.AndroidJUnit4
. link
In my case changing androidTestImplementation
to testImplementation
helped. I did't know the difference before reading this android difference between testImplementation and androidTestImplementation in build.gradle
i got the same error in ExampleInstrumentedTest.java file after i tried to add my project to github. this option did not work for me File -> Invalidate Caches..., and select Invalidate and Restart
then i do this....this is worked for me
add this line in to build.gradle
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
If you imported those AnroidX test libraries, synced and re-built the project, but the imported packages were still not resolved. Just remember how you upgraded your project to AndroidX, close Android Studio and remove the .idea
folder and reopen your project again...
This worked for me !
'Programming' 카테고리의 다른 글
숨기지 않고 스크롤을 비활성화 하시겠습니까? (0) | 2020.05.18 |
---|---|
X 시간보다 오래된 파일을 삭제하는 방법 (0) | 2020.05.18 |
장고 가져 오기 오류-이름이 core.management 인 모듈이 없습니다. (0) | 2020.05.18 |
정수를 삽입하려고 할 때 MongoDB 삽입 부동 (0) | 2020.05.18 |
data.table에서 이름으로 열을 어떻게 삭제합니까? (0) | 2020.05.18 |