Ich habe Probleme beim Importieren einiger Android-UI-Test-Framework-Klassen - ich kann einfach nicht herausfinden, was falsch läuft!
Das ist meine Klasse:
@RunWith(AndroidJUnit4.class)
@LargeTest
public class ExampleUnitTest {
@Rule
public ActivityTestRule<MainActivity> mActivityRule = new ActivityTestRule(MainActivity.class);
@Test
public void listGoesOverTheFold() {
onView(withText("Hello world!")).check(matches(isDisplayed()));
}
}
Aber aus irgendeinem Grund erhalte ich die Fehler "Symbol ActivityTestRule kann nicht gefunden werden" und "Symbol AndroidJUnit4 kann nicht gefunden werden". Ich habe versucht, sie zu importieren, aber sie können nicht gefunden werden.
Die Abhängigkeiten in build.gradle sind wie folgt festgelegt:
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.4.0'
androidTestCompile 'com.android.support:support-annotations:23.4.0'
androidTestCompile 'com.android.support.test:runner:0.4'
androidTestCompile 'com.android.support.test:rules:0.4'
androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.1'
androidTestCompile 'com.android.support.test.uiautomator:uiautomator-v18:2.1.2'
Ich glaube, ich habe alle Abhängigkeiten eingerichtet - ich habe viele Dinge ausprobiert, aber ohne Glück.
Hat jemand irgendwelche Ideen?
test/java
oderandroidTest/java
?androidTest/java
und ich dieses Problem habe?Antworten:
Es gibt zwei verschiedene Arten von Tests, die Sie in Android einrichten können
Unit Tests
test/java
Paket aufbewahrttestCompile
Instrumentierungstests
androidTest/java
Paket aufbewahrtandroidTestCompile
Soweit ich Ihnen sagen kann, versuchen Sie, Instrumentierungstests mit Espresso zu schreiben, haben aber Ihren Test in der
test/java
Packung, die für Komponententests vorgesehen ist. In diesem Fall müssen Sie Ihre Testklasse in dasandroidTest/java
Paket verschieben.quelle
'com.android.support.test:rules:1.0.2'
Fügen Sie diese in der neueren Version hinzu:
androidTestImplementation 'com.android.support.test:rules:1.0.2' androidTestImplementation 'com.android.support.test:runner:1.0.2'
quelle
Wenn Sie auf AndroidX migriert haben, verwenden Sie Folgendes:
androidTestImplementation 'androidx.test:rules:1.1.1' androidTestImplementation 'androidx.test:runner:1.1.1'
quelle
Hinzufügen:
androidTestImplementation 'com.android.support.test:rules:1.0.2'
Behebt das Problem, aber vergessen Sie nicht, das Projekt mit Gradle-Dateien zu synchronisieren. Erst dann werden die Änderungen wirksam.
quelle
brauche dies, um Abhängigkeiten hinzuzufügen
testCompile 'com.android.support.test:rules:0.5' testCompile 'com.android.support.test:runner:0.5'
quelle
Abhängigkeit hinzufügen.
androidTestCompile 'com.android.support.test:rules:0.5' androidTestCompile 'com.android.support.test:runner:0.5'
quelle
Von androidX verwenden
androidTestImplementation 'androidx.test:rules:1.1.1' androidTestImplementation 'androidx.test:runner:1.1.1'
In Ihrem Abhängigkeitsabschnitt in Ihrer build.gradle-Datei auf App-Ebene
für zB:
dependencies { androidTestImplementation 'androidx.test:rules:1.1.1' androidTestImplementation 'androidx.test:runner:1.1.1' }
Dann importieren
import androidx.test.rule.ActivityTestRule;
quelle
Stellen Sie sicher, dass Sie UI-Tests ((Tests, die auf Android-Geräten / Emulatoren ausgeführt werden)) in Android schreiben
Die Testklassen sind in androidTest Paket eher , dass Testpaket.
Stellen Sie sicher, dass Sie die folgenden Abhängigkeiten in build.gradle vornehmen
Stellen Sie für Unit-Tests (Tests, die auf JVM ausgeführt werden) sicher, dass
1.Test Klassen sind in Testpaket
2. Stellen Sie sicher, dass Sie die folgenden Abhängigkeiten in build.gradle herstellen
testImplementation 'junit:junit:4.13' testImplementation 'org.mockito:mockito-core:2.23.0'
quelle