这不是一个重复的问题。
我已经看过类似的问题。我已经添加了我最后提到的问题。
我的问题是测试执行,但我必须为每个测试手动打开应用程序。
您可以看到我在打开应用程序之前已经等待了 18 秒。它等到我手动打开应用程序或超时后显示此错误。
Activity never becomes requested state "[DESTROYED, RESUMED, STARTED, CREATED]" (last lifecycle transition = "PRE_ON_CREATE")
来自 this post ,我认为问题出在设备上,因为我正在使用
Redmi Note 5
.我有
disabled animations
以及 MIUI optimization
选项。感谢您在小米设备上自动运行测试的任何帮助。
手动运行自动化 UI 测试毫无意义。
更新 1
它仅对启动器/主要 Activity 执行。
它不适用于其他 Activity 。
更新 2
我也碰巧有一个 Redmi 4。测试在该设备上按预期工作,没有任何代码更改。
引用 SO 问题
及相关问题,
为任何想要查看的人添加代码 fragment 和依赖项,
测试码
import androidx.test.core.app.ActivityScenario
import androidx.test.espresso.Espresso.onView
import androidx.test.espresso.assertion.ViewAssertions.matches
import androidx.test.espresso.matcher.ViewMatchers.*
import androidx.test.internal.runner.junit4.AndroidJUnit4ClassRunner
import org.junit.Test
import org.junit.runner.RunWith
@RunWith(AndroidJUnit4ClassRunner::class)
class MainActivityTest {
@Test
fun test_isActivityInView() {
val activityScenario = ActivityScenario.launch(MainActivity::class.java)
onView(withId(R.id.layout_activity_main)).check(matches(isDisplayed()))
}
}
依赖 testImplementation "junit:junit:4.13.2"
androidTestImplementation "androidx.test:core:1.4.0"
androidTestImplementation "androidx.test:runner:1.4.0"
androidTestImplementation "androidx.test:rules:1.4.0"
androidTestImplementation "androidx.test.ext:junit-ktx:1.1.3"
androidTestImplementation "androidx.test.espresso:espresso-core:3.4.0"
最佳答案
这是权限问题。只允许自动启动 和 弹窗在您的 android 手机设置中使用此应用程序。
然后启动USB调试并允许链启动用于测试应用程序。
在小米11青春版上对我有用。
关于android - Activity 永远不会变为请求状态 "[DESTROYED, RESUMED, STARTED, CREATED]"(最后一个生命周期转换 = "PRE_ON_CREATE"),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68534534/