Android的工作室咖啡测试错误:空测试套件Android的工作室咖啡测试错误:空测试套件(And

2019-05-12 04:35发布

试运行失败:我一直试图在Android Studio中执行我的测试运行到以下错误无法找到仪器仪表信息:ComponentInfo {。测试/ android.support.test.runner.AndroidJUnitRunner}

我的测试类是androidTest / java目录,并有一个构造函数。 我的build.gradle是正确的了。 任何帮助表示赞赏。

测试类

@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")));
    }
}

应用程序/的build.gradle:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 21
    buildToolsVersion "21.1.2"

    defaultConfig {
        testInstrumentationRunner
        "android.support.test.runner.AndroidJUnitRunner"
    }

    packagingOptions {
        exclude 'LICENSE.txt'
    }
}

dependencies {
    androidTestCompile 'com.android.support.test.espresso:espresso-core:2.0'
    androidTestCompile 'com.android.support.test:testing-support-lib:0.1'
}

Answer 1:

你必须更新测试“编辑配置”,包括AndroidJUnitRunner作为仪表亚军。

我发现在这个视频解决方案: https://youtu.be/TGU0B4qRlHY?t=9m36s

更新

添加什么@loeschg提示:请务必检查logcat的日志,以确保自己是不是导致问题(崩溃)的测试,甚至运行之前。 在@BeforeClass可以阻止恶意代码导致的Android Studio中的“空测试套件”的消息,尽管正确设置测试运行。



Answer 2:

虽然问题已经回答了,想通这是值得张贴对未来的访客。

请务必检查logcat的日志 ,以确保自己是不是导致问题(崩溃)的测试,甚至运行之前。 我在有恶意代码@BeforeClass这导致Android Studio中的“空测试套件”的消息,尽管正确设置测试运行块。



Answer 3:

如果你得到这样的错误信息:

Class not found: "com.example.product.package.name.SomeSpecificTest" Empty test suite.

您需要确保,如果你的咖啡的测试中加入下Android Instrumented Tests中部分Run/Debug Configurations

这似乎是安卓3.1.3工作室有时将其添加到不正确Android JUnit部分替代。

确保它看起来是这样的:

此外,值得一提的是,我注意到,虽然未发生对我来说这个问题Debug选择构建变量。



Answer 4:

我相当肯定android.support.test.runner.AndroidJUnitRunner由亚军库提供。

  1. 安装Android的支持库 (你已经做了)
  2. 添加亚军到你的依赖

它应该是这样的

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


Answer 5:

如果现在还有人在2018年这个麻烦,这里正在安装:

build.gradle必需 ):

<...snip...>

android {
    defaultConfig {
        <...snip...>
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
        // ^^^ here it is (first)!
    }

<...snip...>

dependencies {
    <...snip...>

    androidTestImplementation 'androidx.test:runner:1.1.1'
    androidTestImplementation 'androidx.test.ext:junit:1.1.0'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'
    // ^^^ all three required ^^^ (second)
}

而在仪表测试( 需要太多):

import androidx.test.espresso.Espresso.onData
import androidx.test.espresso.Espresso.onView
import androidx.test.espresso.action.ViewActions.*
import androidx.test.espresso.assertion.ViewAssertions.*
import androidx.test.espresso.matcher.RootMatchers.*
import androidx.test.espresso.matcher.ViewMatchers.*
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.filters.LargeTest
import org.hamcrest.Matchers.*
import org.junit.Test
import org.junit.runner.RunWith

@RunWith(AndroidJUnit4::class)
@LargeTest
class ApplicationTest {
    @Test
    fun thruStillThrullyThrue() {
        // do interaction with some UI
        onView(withId(R.id.myButtonOnMyActivity)).perform(click())

        // assert expected result
        onView(withId(R.id.myTextViewOnMyActivity)).check(matches(isDisplayed()))
    }
}

// (third)


Answer 6:

我的问题是,该领域“testInstrumentationRunner”中的build.gradle(APP)被指定。 更改到androidx如果你正在使用它(androidx.test.runner.AndroidJUnitRunner)

希望它可以帮助别人,干杯!



文章来源: Android Studio Espresso Testing Error: Empty Test Suite