Android Espresso AppNotIdleException with Facebook SDK



当我在清单中添加Facebook SDK和applicationID时,浓缩咖啡测试不起作用如果类中有多种测试方法,则仅在第一个测试上发生错误

 <meta-data
            android:name="com.facebook.sdk.ApplicationId"
            android:value="@string/facebook_app_id" />

导致AppNotidleException异常

E/TestRunner: androidx.test.espresso.AppNotIdleException: Looped for 2 iterations over 60 SECONDS. The following Idle Conditions failed .
        at dalvik.system.VMStack.getThreadStackTrace(Native Method)
        at java.lang.Thread.getStackTrace(Thread.java:1538)
        at androidx.test.espresso.base.DefaultFailureHandler.getUserFriendlyError(DefaultFailureHandler.java:94)
        at androidx.test.espresso.base.DefaultFailureHandler.handle(DefaultFailureHandler.java:57)
        at androidx.test.espresso.ViewInteraction.waitForAndHandleInteractionResults(ViewInteraction.java:316)
        at androidx.test.espresso.ViewInteraction.desugaredPerform(ViewInteraction.java:177)
        at androidx.test.espresso.ViewInteraction.perform(ViewInteraction.java:118)

如果我从清单中删除com.facebook.sdk.ApplicationId,则测试正常运行

Android测试版本:

ext {
        kotlin_version = '1.3.31'
        koin_version = '2.0.0-rc-2'
        nav_version = '2.0.0'
        arch_version = '2.0.1'
        retrofit_version = '2.5.0'
        lifecycle_version = '2.0.0'
        glide_version = '4.9.0'
        espresso_version = '3.1.1'
    }
//  Facebook
    implementation 'com.facebook.android:facebook-login:4.42.0'
// Android test
    androidTestImplementation "androidx.arch.core:core-testing:$lifecycle_version"
    androidTestImplementation 'androidx.test:runner:1.1.1'
    androidTestImplementation 'androidx.test:rules:1.1.1'
    androidTestImplementation "androidx.test.espresso:espresso-core:$espresso_version"
    androidTestImplementation "androidx.test.espresso:espresso-intents:$espresso_version"
    androidTestImplementation 'androidx.test:core:1.1.0'
    androidTestImplementation 'androidx.test.ext:junit:1.1.0'
    androidTestImplementation "org.koin:koin-test:$koin_version"
    androidTestImplementation "org.mockito:mockito-android:2.25.0"
    androidTestImplementation 'com.squareup.okhttp3:mockwebserver:3.14.1'
    // Unit test
    testImplementation 'junit:junit:4.12'
    testImplementation "androidx.test:core:1.1.0"
    testImplementation "androidx.arch.core:core-testing:$lifecycle_version"
    testImplementation "org.koin:koin-test:$koin_version"
    testImplementation "org.mockito:mockito-core:2.27.0"
    testImplementation 'com.squareup.okhttp3:mockwebserver:3.14.1'

我遇到了相同的问题,并通过将其放在我的androidmanifest.xml中解决了问题:

<application ...>
    <meta-data android:name="com.facebook.sdk.AutoInitEnabled" android:value="false"/>
</application>

附加信息:FB GDPR合规性

最新更新