未解决的参考:junit4:Android ComposeUI 测试

P-R*_*RAD 9 android kotlin android-jetpack-compose

我试图测试我在 android 中使用 jetpack compose 构建的 UI 并添加这些依赖项来设置它

    androidTestImplementation "androidx.compose.ui:ui-test-junit4:1.1.0"
    debugImplementation "androidx.compose.ui:ui-test-manifest:1.0.5"
Run Code Online (Sandbox Code Playgroud)

为了测试我刚刚开始写以下内容

class LoginActivityComposeTest {
    @get:Rule
    val composeTestRule = createComposeRule()

    @Test
    fun socialPluginsTest() {
        composeTestRule.setContent {
            SocialLogins()
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我尝试导入的 createComposeRule() 不可用。我尝试手动导入import androidx.compose.ui.test.junit4.createComposeRule但是当我尝试运行测试后出现错误

Unresolved reference: junit4

这是我正在使用的完整 build.gradle 依赖项

compose_version ='1.0.1'retrofit_version ='2.9.0'

    implementation "androidx.core:core-ktx:1.7.0"
    implementation "androidx.compose.ui:ui:$compose_version"
    implementation "androidx.compose.material:material:$compose_version"
    implementation "androidx.compose.ui:ui-tooling-preview:$compose_version"
    implementation "androidx.lifecycle:lifecycle-runtime-ktx:2.4.0"
    implementation "androidx.activity:activity-compose:1.4.0"
    implementation "androidx.navigation:navigation-compose:2.5.0-alpha01"
    implementation "com.squareup.retrofit2:retrofit:$retrofit_version"
    implementation "com.squareup.retrofit2:adapter-rxjava2:$retrofit_version"
    implementation "com.squareup.retrofit2:converter-gson:$retrofit_version"
    implementation 'io.reactivex.rxjava2:rxandroid:2.0.1'
    implementation "io.reactivex.rxjava2:rxkotlin:2.4.0"
    implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.0"
    implementation 'com.google.android.gms:play-services-auth:20.1.0'
    implementation "io.coil-kt:coil-compose:1.4.0"
    testImplementation "junit:junit:4.13.2"
    androidTestImplementation "androidx.test.espresso:espresso-core:3.4.0"
    androidTestImplementation "androidx.compose.ui:ui-test-junit4:1.1.0"
    debugImplementation "androidx.compose.ui:ui-test-manifest:1.0.5"

Run Code Online (Sandbox Code Playgroud)

小智 7

我将测试文件放在错误的文件夹中;不在测试文件夹中,而是在androidTest


Jur*_*iin 1

您可能需要添加@RunWith(AndroidJUnit4::class)到测试类的顶部。

我不能说 100% 准确,因为我不确定在你的 gradle 设置中还有什么可能导致这个问题,但我遇到了类似的问题,这就是我的解决方案。