当前位置:  开发笔记 > Android > 正文

Android Espresso测试:未找到类:...空测试套件

如何解决《AndroidEspresso测试:未找到类:空测试套件》经验,为你挑选了1个好方法。

我正在尝试将本示例中的内容-https://github.com/googlesamples/android-testing/tree/master/ui/espresso/BasicSample-实施到我的应用中。

当我尝试执行简单的Espresso测试时,会发生以下情况:

“ / Applications / Android Studio 2.2.3.app/Contents/jre/jdk/Contents/Home/bin/java”(...)

进程完成,退出代码为1找不到类:“ com.faces_shop.app.MainActivityTest”空测试套件。

(从Android Studio复制粘贴)

考试:

package com.faces_shop.app;

import android.support.test.filters.LargeTest;
import android.support.test.rule.ActivityTestRule;
import android.support.test.runner.AndroidJUnit4;

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

import static android.support.test.espresso.Espresso.onView;
import static android.support.test.espresso.action.ViewActions.closeSoftKeyboard;
import static android.support.test.espresso.action.ViewActions.typeText;
import static android.support.test.espresso.assertion.ViewAssertions.matches;
import static android.support.test.espresso.matcher.ViewMatchers.withId;
import static android.support.test.espresso.matcher.ViewMatchers.withText;

/**
 * Created by AnonymizedForReview on 2017-01-12.
 */
@RunWith(AndroidJUnit4.class)
@LargeTest
public class MainActivityTest {

    public static final String STRING_TO_BE_TYPED = "Espresso";

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

    @Test
    public void changeText_sameActivity() {
        // Type text and then press the button.
        onView(withId(R.id.editFilter))
                .perform(typeText(STRING_TO_BE_TYPED), closeSoftKeyboard());
//        onView(withId(R.id.changeTextBt)).perform(click());

        // Check that the text was changed.
        onView(withId(R.id.editFilter)).check(matches(withText(STRING_TO_BE_TYPED)));
    }


}

该应用程序的build.gradle:

apply plugin: 'com.android.application'

android {
//    productFlavors {
//        /* https://android-developers.googleblog.com/2015/12/leveraging-product-flavors-in-android.html */
//        mock {
//            applicationIdSuffix = ".mock"
//        }
//        prod
//    }
    compileSdkVersion 25
    buildToolsVersion "25.0.0"
    defaultConfig {
        applicationId "com.faces_shop.app"
        minSdkVersion 16
        targetSdkVersion 25
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile project(':FacesApi')

//    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
//        exclude group: 'com.android.support', module: 'support-annotations'
//    })
    // Testing-only dependencies
    // Force usage of support annotations in the test app, since it is internally used by the runner module.
    androidTestCompile 'com.android.support:support-annotations:' + rootProject.supportLibVersion;
    androidTestCompile 'com.android.support.test:runner:' + rootProject.runnerVersion;
    androidTestCompile 'com.android.support.test:rules:' + rootProject.rulesVersion;
    androidTestCompile 'com.android.support.test.espresso:espresso-core:' + rootProject.espressoVersion;

    compile 'com.android.support:appcompat-v7:25.0.1'
    compile 'com.android.support:recyclerview-v7:25.0.1'
    testCompile 'junit:junit:4.12'
}

顶层build.gradle:

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.2.3'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

ext {
    buildToolsVersion = "24.0.1"
    supportLibVersion = "25.0.1"
    runnerVersion = "0.5"
    rulesVersion = "0.5"
    espressoVersion = "2.2.2"
}

我究竟做错了什么?

为什么看不到测试班?

它位于androidTest中的此路径中:... / Examples / DynamicList / FacesApp / src / androidTest / java / com / faces_shop / app / MainActivityTest.java



1> KarolDepka..:

要回答我自己的问题:

事实证明,Android Studio中有一个“运行/调试”配置,例如“ JUnit”,而应该是“ Android Tests”

发生这种情况是因为,最初,测试类是偶然在src / test / java中而不是src / androidTest / java中。因此,当我最初运行它时,“运行/调试”配置文件被创建为JUnit,然后在以后尝试运行该类的尝试中被重用。我猜想它可以在Android Studio中进行改进,以便根据类的当前状态确定运行/调试类型(虽然,但不是抱怨;-))。

推荐阅读
mobiledu2402852413
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有