我的仪器测试用的

@RunWith(AndroidJUnit4.class)

from

import androidx.test.runner.AndroidJUnit4;

为了建立我的测试用例。现在这一行被标记为已弃用,提示使用AndroidJUnit4 from

import androidx.test.ext.junit.runners.AndroidJUnit4

然而,如果我试图从命名包中导入AndroidJUnit4,我得到了错误,该ext无法解决。

你有什么想法,应该在gradle中包含什么包来解决这个问题?


当前回答

如果你已经尝试过@MarcelGangwisch的解决方案,你的构建失败了,说它找不到资源,你也清理/重建了你的项目,它仍然不工作,试试这个: (也是基于@KrzysztofDziuba的解决方案)

在你修改依赖项的gradle文件中,确保你将它添加为你需要的类型,即:

对于UI测试:

androidTestImplementation androidx.test.ext: junit: 1.1.0

对于单元测试:

testImplementation androidx.test.ext: junit: 1.1.0

在我的实例中,我添加它作为两者,现在它工作了。

其他回答

我尝试了上面给出的所有方法,直到我去了Android官方网站,他们建议从androidx.test.ext.junit.runners.AndroidJUnit4而不是androidx.test.runner.AndroidJUnit4导入。链接

根据AndroidJUnit4的文档,

gradle文件应该包含以下行:

androidTestImplementation androidx.test.ext: junit: 1.1.1的

将测试类从AndroidJUnit4改为AndroidJUnit4ClassRunner

如果它仍然不工作,请确保您清理和/或重新构建项目。您还可以直接在谷歌的maven存储库中检查当前版本

在构建中包含这些行。Gradle应用程序模块。 testImplementation androidx.test.ext: junit: 1.1.1的 androidTestImplementation androidx.test.ext: junit: 1.1.1的 在测试类中,将测试运行程序替换为 进口androidx.test.ext.junit.runners.AndroidJUnit4; 如果InstrumentationRegistry. gettargetcontext()已弃用,请使用androidx.test.platform.app中的InstrumentationRegistry .getTargetContext InstrumentationRegistry.getInstrumentation () ()

如果您导入了那些AnroidX测试库,同步并重新构建了项目,但导入的包仍然无法解析。只要记住你如何升级你的项目到AndroidX,关闭Android Studio,删除。idea文件夹,重新打开你的项目…

这对我很管用!

在我的案例中,将androidTestImplementation更改为testImplementation有帮助。 在阅读build.gradle中的testimplemimplementation和androidtestimplemimplementation之间的android差异之前,我不知道区别