Espresso-UI-Tests nicht erkennen onView()
Habe ich verbrachte den ganzen Tag einrichten Junit4 instrumentation-tests mit dem Espresso, aber kann einfach nicht scheinen zu bekommen, dass der Letzte Schritt. Egal was ich mache es wird nicht erkannt das onView()
Methode. Ich habe versucht mehrere SDK - /support-lib-Versionen und bisher nichts. Ich habe alles durchlebt das google-setup-guides und vielen stackoverflow-Beiträgen, drehen hier ist meine Letzte Hoffnung.
Gradle-version : com.android.tools.build:gradle:1.5.0
Gradle-Datei:
apply plugin: 'com.android.application'
apply plugin: 'com.google.gms.google-services'
android {
compileSdkVersion 23
buildToolsVersion "23.0.2"
useLibrary 'org.apache.http.legacy'
defaultConfig {
applicationId "lv.my.android"
minSdkVersion 9
targetSdkVersion 22
testApplicationId "lv.my.android.tests"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
packagingOptions {
exclude 'LICENSE.txt'
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/LICENSE'
exclude 'META-INF/NOTICE'
}
compileOptions {
sourceCompatibility = 'VERSION_1_7'
targetCompatibility = 'VERSION_1_7'
}
signingConfigs {
beta {
storeFile file("beta.keystore")
storePassword "betabuild"
keyAlias "key"
keyPassword "betabuild"
}
release
}
buildTypes {
debug {
debuggable true
applicationIdSuffix '.debug'
versionNameSuffix '-DEV'
minifyEnabled false
}
beta {
debuggable true
applicationIdSuffix '.beta'
versionNameSuffix '-BETA'
signingConfig signingConfigs.beta
minifyEnabled false
}
release {
minifyEnabled false
}
}
}
dependencies {
compile files('src/main/libs/guice-3.0-no_aop.jar')
compile files('src/main/libs/javax.inject-1.jar')
compile files('src/main/libs/roboguice-2.0.jar')
compile files('src/main/libs/junit-4.11.jar')
compile files('src/main/libs/hamcrest-core-1.3.jar')
compile files('src/main/libs/GeoLib.jar')
compile files('src/main/libs/GeoPolygons.jar')
compile files('src/main/libs/universal-image-loader-1.9.4.jar')
compile files('src/main/libs/javax.annotation-3.2-b06-sources.jar')
compile 'uk.co.chrisjenx:calligraphy:2.1.0'
compile 'com.squareup:otto:1.3.5'
compile 'com.google.android.gms:play-services:6.5.87'
compile 'com.android.support:support-annotations:23.0.1'
compile 'com.android.support:appcompat-v7:23.0.1'
compile 'com.android.support:support-v4:23.0.1'
compile 'com.android.support:palette-v7:23.0.1'
compile 'com.google.code.findbugs:jsr305:2.0.1'
compile 'com.nineoldandroids:library:2.4.0'
compile 'pl.charmas.android:android-reactive-location:0.4@aar'
compile 'io.reactivex:rxjava:1.0.3'
compile files('src/main/libs/FlurryAnalytics-6.1.0.jar')
compile 'com.github.castorflex.smoothprogressbar:library:1.1.0'
androidTestCompile 'com.android.support.test:testing-support-lib:0.1'
androidTestCompile'com.android.support.test:runner:0.4.1'
//Set this dependency to use JUnit 4 rules
androidTestCompile'com.android.support.test:rules:0.4'
//Set this dependency to build and run Espresso tests
androidTestCompile'com.android.support.test.espresso:espresso-core:2.2.1'
testCompile 'junit:junit:4.12'
testCompile "org.mockito:mockito-core:1.9.5"
}
Meinem test (befindet sich in src/androidTest/java/lv/my/test
)
package lv.my.test;
import android.support.test.rule.ActivityTestRule;
import android.support.test.runner.AndroidJUnit4;
import android.test.suitebuilder.annotation.LargeTest;
import lv.my.android.activities.LoginActivity;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
@RunWith(AndroidJUnit4.class)
@LargeTest
public class LoginActivityTest {
private String mStringToBetyped;
@Rule
public ActivityTestRule<LoginActivity> mActivityRule = new ActivityTestRule<>(LoginActivity.class);
@Before
public void initValidString() {
}
@Test
public void changeText_sameActivity() {
// onView not recognized here
}
}
PS. Ich benutze roboguice, könnte dass das Problem sein?
- versuchen Sie, hinzufügen von import-Anweisung als
import static android.support.test.espresso.Espresso.onView;
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden Sie entweder einen statischen import:
oder
und nennen Sie in der folgenden Weise
Espresso.onView(ViewMatchers.withId(R.id.registerButton))
Erweitern, was Egor hat vorgeschlagen, in Android Studio, sobald Sie einen roten text auf
onView()
, drücken Sie einfach alt+enter wenn die rote Lampe auftauchte. Dann wählen Sie statischen import.matchers.ViewMatchers
. Vielen Dank!Weiter schreiben. Android Studio empfehlen, die benötigten Espresso Importe aus der 'inside out'.
Zum Beispiel: onView(withId()) wird Zunächst erkennen, withId(), dann onView()
For AndroidX verwenden Sie diese