有没有办法为每个测试提供不同的testInstrumentationRunner?我必须为它创建一个Task
吗?我的跑步者如下:
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<out Runner!>
这样的东西
@RunWith(MyTestRunner::class)
如果我能做到这一点,我就会明白如何使用不同的跑步者。
尝试扩展androidx.test.ext.junit.runners.AndroidJUnit4
:
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"
文档建议它作为默认的运行程序,因此应该提供Kotlin互操作性。.kt
文件中的@RunWith
注释仅接受KClass<out Runner!>
。