Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 试图将AndroidJUnit4与标准JUnit runner和委托runner';org.roblectric.roblectrictestrunner';无法加载_Java_Android_Robolectric_Android Espresso - Fatal编程技术网

Java 试图将AndroidJUnit4与标准JUnit runner和委托runner';org.roblectric.roblectrictestrunner';无法加载

Java 试图将AndroidJUnit4与标准JUnit runner和委托runner';org.roblectric.roblectrictestrunner';无法加载,java,android,robolectric,android-espresso,Java,Android,Robolectric,Android Espresso,我正在使用espresso运行一些测试,但我不知道为什么roboelectric会包含在这个错误中,因为这些测试只针对espresso,下面是错误: java.lang.Exception: Attempted to use AndroidJUnit4 with standard JUnit runner and delegate runner 'org.robolectric.RobolectricTestRunner'could not be loaded. Check your build

我正在使用
espresso
运行一些测试,但我不知道为什么roboelectric会包含在这个错误中,因为这些测试只针对espresso,下面是错误:

java.lang.Exception: Attempted to use AndroidJUnit4 with standard JUnit runner and delegate runner 'org.robolectric.RobolectricTestRunner'could not be loaded. Check your build configuration.
at android.support.test.runner.AndroidJUnit4.loadRunner(AndroidJUnit4.java:89)
at android.support.test.runner.AndroidJUnit4.loadRunner(AndroidJUnit4.java:63)
at android.support.test.runner.AndroidJUnit4.<init>(AndroidJUnit4.java:57)
at java.lang.reflect.Constructor.newInstance0(Native Method)
at java.lang.reflect.Constructor.newInstance(Constructor.java:343)
at org.junit.internal.builders.AnnotatedBuilder.buildRunner(AnnotatedBuilder.java:104)
at org.junit.internal.builders.AnnotatedBuilder.runnerForClass(AnnotatedBuilder.java:86)
at androidx.test.internal.runner.junit4.AndroidAnnotatedBuilder.runnerForClass(AndroidAnnotatedBuilder.java:63)
at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59)
at org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:26)
at androidx.test.internal.runner.AndroidRunnerBuilder.runnerForClass(AndroidRunnerBuilder.java:153)
at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59)
at androidx.test.internal.runner.TestLoader.doCreateRunner(TestLoader.java:73)
at androidx.test.internal.runner.TestLoader.getRunnersFor(TestLoader.java:104)
at androidx.test.internal.runner.TestRequestBuilder.build(TestRequestBuilder.java:789)
at androidx.test.runner.AndroidJUnitRunner.buildRequest(AndroidJUnitRunner.java:543)
at androidx.test.runner.AndroidJUnitRunner.onStart(AndroidJUnitRunner.java:386)
at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:2145)
下面是正在运行的测试am:

@Rule
public ActivityTestRule<MainActivity> activity = new ActivityTestRule<>(MainActivity.class);

@Test
public void loadRecyclerview(){

    Espresso.onView(ViewMatchers.withId(R.id.rv)).
            perform(RecyclerViewActions.actionOnItemAtPosition(0, ViewActions.click()));

    Espresso.onView(withId(R.id.text))
            .check(matches(withText("k33too")))
            .check(matches(isDisplayed()));
}
@规则
public ActivityTestRule activity=新建ActivityTestRule(MainActivity.class);
@试验
公共void loadRecyclerview(){
浓缩咖啡onView(ViewMatchers.withId(R.id.rv))。
执行(RecycleServiceActions.ActionOnItemPosition(0,ViewActions.click());
浓缩咖啡onView(带id(R.id.text))
.检查(匹配项(与文本(“k33too”))
.检查(匹配项(isDisplayed());
}

有什么问题吗?

我看到您正在使用AndroidX。确保使用正确的导入。今天我遇到了这个问题,意识到我仍然在使用旧的
import-android.support.test.runner.AndroidJUnit4当我应该使用
导入androidx.test.runner.AndroidJUnit4时


这为我修复了错误。

我将依赖项添加到我的gradle文件中,它现在可以找到Roboelectric

    testImplementation 'org.robolectric:robolectric:4.0'

希望它有帮助

除了Zac的答案之外,我还必须利用以下依赖关系来解决这个问题:

导入androidx.test.ext.junit.runners.AndroidJUnit4

在应用程序的build.gradle中,确保您具有以下依赖项:

androidTestImplementation'androidx.test.ext:junit:1.1.0'

在android.buildConfig下,确保您有:


testInstrumentationRunner“androidx.test.runner.AndroidJUnitRunner”
kotlin的更新。确保所有
@Rule
注释都是以
@get:Rule
的形式出现的-这在我的案例中是一个问题。

同样的问题,你找到解决方案了吗?@nilsi检查我的答案,看看这是否对你有帮助。检查以下答案中的解决方案:GLandroidx.test.runner.AndroidJUnit4现在不推荐使用。现在正确的使用方法是什么?androidx.test.ext.junit.runners.AndroidJUnit4来自测试实现“androidx.test.ext:junit:1.1.1”?毕业生应该如何看待@StephenM onstrike后的生活-评论?谢谢,这是我的工作
    testImplementation 'org.robolectric:robolectric:4.0'