2015-12-14 2 views
0

У меня проблема с тестированием на эспрессо Android. Кажется, я не могу получить доступ к «AndroidJUnit4.class». Код ниже дает мне «@RunWith (AndroidJUnit4.class)» как «Не удается разрешить символ AndroidJUnit4».Эспрессо-тестирование - Android

import android.test.suitebuilder.annotation.LargeTest; 

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

@RunWith(AndroidJUnit4.class) 
@LargeTest 
public class HelloWorldEspressoTest { 

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

    @Test 
    public void listGoesOverTheFold() { 
     onView(withText("Hello world!")).check(matches(isDisplayed())); 
    } 
} 

Я знаю, что это связано с build.gradle настроек файла, но я не знаю, что случилось. Ниже приведена копия того, что я использую.

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 23 
    buildToolsVersion "23.0.1" 

    defaultConfig { 
     applicationId "example.com.myapp" 
     minSdkVersion 22 
     targetSdkVersion 22 
     versionCode 1 
     versionName "1.0" 

     testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 
    } 
    buildTypes { 
     release { 
      minifyEnabled true 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    compile 'com.android.support:cardview-v7:23.0.1' 
    compile 'com.android.support:recyclerview-v7:23.0.1' 
    compile 'com.android.support:design:23.0.1' 
    compile 'com.android.support:appcompat-v7:23.0.1' 

    testCompile 'junit:junit:4.12' 
    androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.1' 
    androidTestCompile 'com.android.support.test:runner:0.4.1' 
    androidTestCompile 'com.android.support.test:rules:0.4' 
    androidTestCompile 'com.android.support.test.uiautomator:uiautomator-v18:2.1.2' 
    compile project(':volleylibrarygitpull') 
} 

configurations.all { 
    resolutionStrategy.force 'com.android.support:support-annotations:22.2.0' 
} 

Я был бы очень признателен, если кто-то может сказать мне, что случилось с моим файлом build.gradle для того, чтобы мне использовать среду тестирования Espresso. Мне нужно поддержать материал дизайн, поэтому более низкий уровень API, чем 23.0.1, который имеет cardview, recyclerview будет делать.

+0

кто-нибудь есть какие-либо идеи, почему Google назвал их образец теста «listGoesOverTheFold»? – nAndroid

ответ

3

Согласно https://guides.codepath.com/android/UI-Testing-with-Espresso

Вы пытаетесь поставить тесты в той папке, и поэтому Android студия не признает JUnit4 класса. Прочтите учебник выше, чтобы использовать папку androidTest.

Заметьте также, что вы используете другую версию для модулей для одной и той же библиотеки:

androidTestCompile 'com.android.support.test:runner:0.4.1' 
androidTestCompile 'com.android.support.test:rules:0.4'