Ich habe ein Problem mit Kotlin Espresso Tests. Ich habe Kotlin-Android
Gradle Plugin im Build-Skript des Moduls angewendet, und die Tests laufen ohne Probleme in Android Studio (die Testklasse ist kommentiert und von AndroidJUnit4
Runner ausgeführt), aber die Gradle Task "AssembledDebugAndroidTest" aus Terminal fehlschlägt meine Hauptklassen zu finden . und Pakete (Klassen in den Tests verwendet) Es wirft einen Unresolved Reference
FehlerAndroid Espressotests (in Kotlin geschrieben) kann die Hauptklassen und Pakete nicht sehen
Hier ist der sourceSets Abschnitt des Build-Skript.
sourceSets {
androidTest {
java.srcDir 'src/sharedTestUtils/java'
java.srcDir 'src/acceptanceTests/java'
java.srcDir 'src/functionalTests/java'
java.srcDir 'src/sharedTestUtils/kotlin'
java.srcDir 'src/acceptanceTests/kotlin'
java.srcDir 'src/functionalTests/kotlin'
}
acceptanceTests {
java.srcDir 'src/sharedTestUtils/java'
java.srcDir 'src/sharedTestUtils/kotlin'
}
// source sets for Kotlin
// main.java.srcDirs += 'src/main/kotlin'
test.java.srcDirs += 'src/test/kotlin'
}
und Test Abhängigkeiten in dem Modul ein:
apply plugin: 'kotlin-android'
dependencies {
androidTestCompile deps.kotlin
androidTestCompile deps.kotlinTest
androidTestCompile deps.kotlinTestJunit
}
Project Build-Skript:
ext.deps = [
kotlin : "org.jetbrains.kotlin:kotlin-stdlib:$ver.kotlin",
kotlinTest : "org.jetbrains.kotlin:kotlin-test:$ver.kotlin",
kotlinTestJunit : "org.jetbrains.kotlin:kotlin-test-junit:$ver.kotlin"
]
Ich verwende Version 1.0.5-2 von Kotlin.
Wir haben einen benutzerdefinierten Test-Runner als testInstrumentationRunner
, der einige Leerlauf Ressourcen und einige Aktivität Hook zum Entsperren des Geräts Bildschirm und Erwerb der Wake-Sperre registriert, und nutzt TestButler zum Deaktivieren von Animationen und Stabilisierungstests. Die Tests sind jedoch mit Espresso jUnit 4 runner (@RunWith(AndroidJUnit4::class)
) versehen. Aber die Tatsache, dass Android Studio die Tests problemlos ausführt, ist verwirrend.