gpt4 book ai didi

android - espresso onView 性能不一致

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:02:03 27 4
gpt4 key购买 nike

我正在使用 Junit4 和 Espresso 进行测试。我在 espresso 测试中遇到了一个奇怪的问题——当我调用 onView 时,有时一切都会按预期执行,但有时我的测试会卡住,60 秒后我会得到类似“android.support.test.espresso.AppNotIdleException: Looped在 60 秒内进行 63 次迭代。以下空闲条件失败 ASYNC_TASKS_HAVE_IDLED"例如:

    onView(withId(R.id.zone_button_continue)).perform(click());
onView(withId(R.id.loginButton)).check(matches(isDisplayed()));
onView(withId(R.id.number)).check(matches(isDisplayed()));
onView(withId(R.id.password)).check(matches(isDisplayed()));
onView(withId(R.id.number)).perform(typeText(phoneNumber));
onView(withId(R.id.password)).perform(typeText(password));
onView(withId(R.id.loginButton)).perform(click());

除最后一行外,所有内容均已正确执行 - 由于某种原因,它找不到该登录按钮,但它 100% 就在那里。我能行

activity.runOnUiThread(new Runnable() {
@Override
public void run() {
activity.findViewById(R.id.loginButton).performClick();
}
});

那行得通。在我的大部分 Activity 中,我都有类似的问题 - 有时 onView 有时不工作。

什么会导致这种不一致?我已经为这个问题苦苦挣扎了一段时间,这让我的测试非常沮丧和困难。到目前为止,我的结论是我的 gradle 依赖项有问题,或者我的应用程序中存在某种错误,导致 espresso 无法正常工作。但奇怪的是,在上面的示例中,除了最后一行之外,onView 的所有内容都在工作,并且所有内容都在一个 Activity 中发生,这让我怀疑该错误是否在我的应用程序中。这是我的 gradle 依赖项:

compile files('src/main/libs/guice-3.0-no_aop.jar')
compile files('src/main/libs/javax.inject-1.jar')
compile files('src/main/libs/roboguice-2.0.jar')
compile files('src/main/libs/junit-4.11.jar')
compile files('src/main/libs/hamcrest-core-1.3.jar')
compile files('src/main/libs/GeoLib.jar')
compile files('src/main/libs/GeoPolygons.jar')
compile files('src/main/libs/universal-image-loader-1.9.4.jar')
compile files('src/main/libs/javax.annotation-3.2-b06-sources.jar')
compile ('uk.co.chrisjenx:calligraphy:2.1.0'){
exclude group:'com.android.support'
}
compile 'com.squareup:otto:1.3.5'
compile ('com.google.android.gms:play-services:6.5.87'){
exclude group:'com.android.support'
}
compile 'com.android.support:support-annotations:22.2.1'
compile ('com.android.support:appcompat-v7:22.2.0'){
exclude group:'com.android.support'
}
compile ('com.android.support:support-v4:22.2.0'){
exclude group:'com.android.support', module:'support-annotations'
}
compile ('com.android.support:palette-v7:22.2.0'){
exclude group:'com.android.support'
}
compile 'com.google.code.findbugs:jsr305:2.0.1'

compile 'com.nineoldandroids:library:2.4.0'
compile 'pl.charmas.android:android-reactive-location:0.4@aar'
compile 'io.reactivex:rxjava:1.0.3'
compile files('src/main/libs/FlurryAnalytics-6.1.0.jar')
compile 'com.github.castorflex.smoothprogressbar:library:1.1.0'
// androidTestCompile 'com.android.support.test:testing-support-lib:0.1'
androidTestCompile('com.android.support.test:runner:0.4.1') {
exclude group: 'com.android.support', module: 'support-annotations'
}
// Set this dependency to use JUnit 4 rules
androidTestCompile('com.android.support.test:rules:0.4.1') {
exclude group: 'com.android.support', module: 'support-annotations'
}
// Set this dependency to build and run Espresso tests
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.1') {
exclude group: 'com.android.support', module: 'support-annotations'
}

androidTestCompile('com.android.support.test.espresso:espresso-intents:2.2.1') {
exclude group: 'com.android.support', module: 'support-annotations'
}
androidTestCompile('com.android.support.test.espresso:espresso-web:2.2.1') {
// PackagingOptions modified to make this work
exclude group: 'com.android.support', module: 'support-annotations'
}
testCompile 'junit:junit:4.11'
testCompile ('org.mockito:mockito-core:1.9.5'){
exclude group: 'org.hamcrest'
}
compile 'org.mod4j.org.apache.commons:lang:2.1.0'

请帮我解决这个问题,我完全没有想法并坚持下去。

最佳答案

了解为什么您会收到带有消息“The following Idle Conditions failed ASYNC_TASKS_HAVE_IDLED”的 AppNotIdleException 的最简单方法是:

  • 在 Android Studio 中以 Debug模式运行测试
  • 等到测试挂起
  • 在(默认)60 秒过去之前,暂停测试
  • 查看“线程”列表并查看名为“AsyncTask #1”等的线程。展开处于 RUNNING 状态的那个。在那里您可以看到代码的哪一部分使应用程序忙碌

这是我的案例的结果,所以我不得不为我的测试禁用 Facebook SDK 以使其再次稳定:

Threads view while debugging

关于android - espresso onView 性能不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35460708/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com