У меня проблема с тестами Kotlin Espresso. Я применил Kotlin-Android
плагин Gradle в скрипте сборки модуля, и тесты запускаются без проблем в Android Studio (тестовый класс аннотируется и запускается AndroidJUnit4
runner), но выполнение задачи Gradle «assembleDebugAndroidTest» из терминала не может найти мои основные классы . и пакеты (классы, используемые в тестах) Он бросает Unresolved Reference
ошибкуТесты на эспрессо для Android (написанные в Котлине) не видят основных классов и пакетов
Вот раздел sourceSets сценария сборки:.
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'
}
и тест зависимостей в модуле:
apply plugin: 'kotlin-android'
dependencies {
androidTestCompile deps.kotlin
androidTestCompile deps.kotlinTest
androidTestCompile deps.kotlinTestJunit
}
Сценарий сборки
проекта:
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"
]
Я использую версию 1.0.5-2 Котлин.
У нас есть пользовательский тестовый бегун как testInstrumentationRunner
, который регистрирует некоторые ресурсы на холостом ходу и некоторый захват активности для разблокировки экрана устройства и получения блокировки слежения и использует TestButler для отключения анимации и стабилизации тестов. Тем не менее, тесты аннотируются с помощью Espresso jUnit 4 runner (@RunWith(AndroidJUnit4::class)
). Но тот факт, что Android Studio запускает тесты без каких-либо проблем, сбивает с толку.