【发布时间】:2016-12-05 19:11:10
【问题描述】:
我对 Kotlin Espresso 测试有疑问。我在模块的构建脚本中应用了Kotlin-Android Gradle 插件,并且测试在 Android Studio 中运行没有问题(测试类由AndroidJUnit4 runner 注释和运行),但是从终端运行 Gradle 任务“assembleDebugAndroidTest”失败找到我的主要类和包(测试中使用的类)。它会引发 Unresolved Reference 错误。
这是构建脚本的 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 版的 Kotlin。
我们有一个自定义测试运行器testInstrumentationRunner,它注册了一些空闲资源和一些用于解锁设备屏幕和获取唤醒锁的活动挂钩,并使用 TestButler 来禁用动画和稳定测试。但是,测试使用 Espresso jUnit 4 runner (@RunWith(AndroidJUnit4::class)) 进行注释。但 Android Studio 运行测试没有任何问题的事实令人困惑。
【问题讨论】:
标签: android kotlin android-espresso