Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/201.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何组合不同的testInstrumentationRunner_Android_Kotlin_Testing_Android Espresso - Fatal编程技术网

Android 如何组合不同的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

有没有办法让每个测试都有不同的testInstrumentationRunner?我必须为它创建
任务吗?我的跑步者如下:

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"