Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/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 Studio Espresso测试错误:测试套件为空_Android_Testing_Junit_Android Espresso - Fatal编程技术网

Android Studio Espresso测试错误:测试套件为空

Android Studio Espresso测试错误:测试套件为空,android,testing,junit,android-espresso,Android,Testing,Junit,Android Espresso,在Android Studio中尝试执行测试时,我一直遇到以下错误:测试运行失败:找不到以下的工具信息:ComponentInfo{.Test/Android.support.Test.runner.AndroidJUnitRunner} 我的测试类位于androidTest/java目录中,并且有一个构造函数。我的身材格雷德尔也是对的。感谢您的帮助 测试类 @RunWith(AndroidJUnit4.class) @LargeTest public class AndroidUITests

在Android Studio中尝试执行测试时,我一直遇到以下错误:测试运行失败:找不到以下的工具信息:ComponentInfo{.Test/Android.support.Test.runner.AndroidJUnitRunner}

我的测试类位于androidTest/java目录中,并且有一个构造函数。我的身材格雷德尔也是对的。感谢您的帮助

测试类

@RunWith(AndroidJUnit4.class)
@LargeTest
public class AndroidUITests extends ActivityInstrumentationTestCase2<UserActivity>{

    private UserActivity userActivity;

    public AndroidUITests() {
        super(UserActivity.class);
    }


    @Before
    public void setUp() throws Exception {
        super.setUp();
        injectInstrumentation(InstrumentationRegistry.getInstrumentation());
        userActivity = getActivity();
    }

    @Test
    public void testPhoneIconIsDisplayed() {
        // When the phone_icon view is available,
        // check that it is displayed.
        onView(ViewMatchers.withId(R.id.groupCreate)).perform(click())
                .check(matches(withText("Enter a name")));
    }
}

我相当肯定,
android.support.test.runner.AndroidJUnitRunner
是由runner库提供的

  • 安装(您已经安装了)
  • 将runner添加到依赖项中
  • 应该是这样的

    dependencies {
        ...
        androidTestCompile 'com.android.support.test:runner:0.2'
    }
    

    您必须更新测试“编辑配置”,并将AndroidJUnitRunner包含为检测运行程序

    我在这段视频中找到了解决方案:

    已更新

    添加@loeschg建议的内容: 确保在测试运行之前检查logcat日志,以确保没有什么东西导致问题(崩溃)。@BeforeClass块中的错误代码可能导致Android Studio中出现“空测试套件”消息,尽管已正确设置了测试运行程序。

    虽然问题已经得到回答,但我认为值得为未来的访问者发布


    确保在测试运行之前检查logcat日志,以确保没有任何问题(崩溃)。我在我的
    @BeforeClass
    块中有错误的代码,这导致Android Studio中出现“空测试套件”消息,尽管已正确设置了测试运行程序。

    如果您收到此类错误消息:

    Class not found: "com.example.product.package.name.SomeSpecificTest" Empty test suite.
    
    您需要确保您的浓缩咖啡测试是否添加到
    运行/调试配置
    中的
    Android Instrumented Tests
    部分

    看起来,Android Studio 3.1.3有时会错误地将其添加到
    Android JUnit
    部分

    确保它看起来像这样:


    另外,值得一提的是,我注意到,在选择非
    调试
    构建变量时,我会出现此问题。

    如果2018年仍有人为此烦恼,请看工作设置:

    build.gradle
    必需)):

    
    安卓{
    默认配置{
    TestInstrumentRunner“androidx.test.runner.AndroidJUnitRunner”
    //这里是(第一)!
    }
    依赖关系{
    androidTestImplementation'androidx.test:runner:1.1.1'
    androidTestImplementation'androidx.test.ext:junit:1.1.0'
    AndroidTest实施“androidx.test.浓缩咖啡:浓缩咖啡核心:3.1.1”
    //^^^^所有三个必需的^^^^(第二个)
    }
    
    在仪器化测试中(也需要)

    导入androidx.test.espresso.espresso.onData
    导入androidx.test.espresso.espresso.onView
    导入androidx.test.espresso.action.ViewActions*
    导入androidx.test.espresso.assertion.ViewAssertions*
    导入androidx.test.espresso.matcher.RootMatchers*
    导入androidx.test.espresso.matcher.ViewMatchers*
    导入androidx.test.ext.junit.runners.AndroidJUnit4
    导入androidx.test.filters.LargeTest
    导入org.hamcrest.Matchers*
    导入org.junit.Test
    导入org.junit.runner.RunWith
    @RunWith(AndroidJUnit4::类)
    @最大的
    类应用程序测试{
    @试验
    乐趣之旅{
    //与一些用户界面进行交互
    onView(带id(R.id.MyButtonNonMyActivity))。执行(单击())
    //断言预期结果
    onView(带id(R.id.myTextViewOnMyActivity))。检查(匹配项(isDisplayed())
    }
    }
    //(三)
    
    我的问题是build.gradle(应用程序)中指定了字段“testInstrumentationRunner”。如果正在使用它,请将其更改为androidx(androidx.test.runner.AndroidJUnitRunner)


    希望它能帮助某些人,干杯!

    如果有疑问,请参考官方示例:。另外,如果使用“All-in-package”,请确保设置了正确的运行配置选项,如果您使用
    applicationIdSuffix
    optionTanks,它可能与applicationId不匹配。如果错误没有误导,我希望是这样:)Runner不能再在运行/调试配置中指定。非常感谢更新的提示!节省了我的时间!我也注意到了这种情况。从Android JUnit sectio中删除了测试从下一次测试开始,清理项目确实对我起了作用。
    Class not found: "com.example.product.package.name.SomeSpecificTest" Empty test suite.