Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/186.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.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
Android 找不到Espresso测试类_Android_Android Espresso_Instrumented Test - Fatal编程技术网

Android 找不到Espresso测试类

Android 找不到Espresso测试类,android,android-espresso,instrumented-test,Android,Android Espresso,Instrumented Test,我创建了一个基本的浓缩咖啡测试类,如下所示: @LargeTest @RunWith(AndroidJUnit4.class) 类配置活动测试{ @统治 公共活动测试规则mConfigsTestRule= 新的ActivityTestRule(ConfigurationsActivity.class); @试验 公共无效信息视图(){ onView(带id(R.id.config_recyclerview)).check(匹配项(isDisplayed()); } } 问题是,当我尝试运行此测

我创建了一个基本的浓缩咖啡测试类,如下所示:

@LargeTest
@RunWith(AndroidJUnit4.class)
类配置活动测试{
@统治
公共活动测试规则mConfigsTestRule=
新的ActivityTestRule(ConfigurationsActivity.class);
@试验
公共无效信息视图(){
onView(带id(R.id.config_recyclerview)).check(匹配项(isDisplayed());
}
}
问题是,当我尝试运行此测试时,会收到以下错误消息:

未找到类:“com.name.app.activities.ConfigurationsTest”

我遵循了这个答案:并查看了我的运行配置。看起来我的测试是作为一个单元测试运行的,即使它是一个仪器化的测试

当我删除在尝试运行插入指令的测试时创建的单元测试配置,并尝试为测试类创建插入指令的测试运行配置时,会出现另一个问题:向导不允许我选择包含上述测试的插入指令的测试类作为测试类

我还查看了这个答案:并确认main/java和androidTest/java中的目录结构是相同的

此外,当我按照这个问题中的操作:为包含我的测试类的整个包创建一个运行配置并运行它时,我得到:

java.lang.RuntimeException:无法加载AndroidJUnit4的代理运行程序“androidx.test.internal.runner.junit4.AndroidJUnit4类运行程序”

我怀疑这与我的导入或依赖项有关。这两个都是:

import androidx.test.ext.junit.runners.AndroidJUnit4;
import androidx.test.filters.LargeTest;
import androidx.test.rule.ActivityTestRule;

import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;

import static androidx.test.espresso.Espresso.onView;
import static androidx.test.espresso.assertion.ViewAssertions.matches;
import static androidx.test.espresso.matcher.ViewMatchers.isDisplayed;
import static androidx.test.espresso.matcher.ViewMatchers.withId;

谢谢你的帮助。谢谢

规则应该是这样的

@Rule
public ActivityTestRule<ConfigurationsActivity> mConfigsTestRule =
            new ActivityTestRule<>(ConfigurationsActivity.class);
@规则
公共活动测试规则mConfigsTestRule=
新的ActivityTestRule(ConfigurationsActivity.class);

测试类必须是公共的。这就是它不起作用的原因。

接得好!但这不是问题的解决方案。
@Rule
public ActivityTestRule<ConfigurationsActivity> mConfigsTestRule =
            new ActivityTestRule<>(ConfigurationsActivity.class);