如何组合不同的testInstrumentationRunner



有没有办法为每个测试提供不同的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!>

相关内容

  • 没有找到相关文章

最新更新