Android 如何组合不同的testInstrumentationRunner
有没有办法让每个测试都有不同的testInstrumentationRunner?我必须为它创建Android 如何组合不同的testInstrumentationRunner,android,kotlin,testing,android-espresso,Android,Kotlin,Testing,Android Espresso,有没有办法让每个测试都有不同的testInstrumentationRunner?我必须为它创建任务吗?我的跑步者如下: class MyTestRunner : AndroidJUnitRunner() { override fun newApplication( cl: ClassLoader?, className: String?, context: Context? ): Application { ret
任务吗?我的跑步者如下:
class MyTestRunner : AndroidJUnitRunner() {
override fun newApplication(
cl: ClassLoader?,
className: String?,
context: Context?
): Application {
return super.newApplication(cl, MyTestApp::class.java.name, context)
}
}
但是如果我想用真正的应用程序运行一些呢?我怎么选择呢
我一直在读这本书,这本书可以用
@RunWith(AndroidJUnit4ClassRunner::class)
在我的测试中,我正在使用它,但我知道如果我这样做,它将使用一个defaultConfig
defaultConfig {
testInstrumentationRunner("mypackage.MyTestRunner")
}
但是我不能使用它所说的Required:KClass
如果我能做到这一点,我会理解如何使用不同的跑步者。尝试扩展:
要使用的依赖项:
// https://mvnrepository.com/artifact/androidx.test.ext
androidTestImplementation "androidx.test.ext:junit:1.1.2"
建议将其作为默认运行程序,因此应提供Kotlin互操作性。.kt
文件中的@RunWith
注释只接受KClass
。在Kotlin中,错误消息将是@RunWith(MyTestRunner::class.java)
的预期输出,因为它需要KClass
MyTestRunner
是AndroidJUnitRunner
,但是KClass
是不相关的。
import androidx.test.ext.junit.runners.AndroidJUnit4
class MyTestRunner : AndroidJUnit4() {
...
}
// https://mvnrepository.com/artifact/androidx.test.ext
androidTestImplementation "androidx.test.ext:junit:1.1.2"