这不是一个重复的问题。
我已经看过类似的问题。我已经添加了我上次提到的问题。
我的问题是测试执行了,但我必须为每个测试手动打开应用程序。
你可以看到我已经等了18秒才打开应用程序。它会等到我手动打开应用程序,或者在超时后显示此错误。
活动永远不会变成请求的状态“[DESTROYED、RESUMED、STARTED、CREATED]”(最后一个生命周期转换=“PRE_ON_CREATE”)
从这篇文章中,我认为问题出在我正在使用的设备上Redmi Note 5。
我disabled animations也有这个MIUI optimization选择。
感谢您提供在小米设备上自动运行测试的帮助。
手动运行自动化 UI 测试没有意义。
更新 1
它仅针对启动器/主要活动执行。
它不适用于其他活动。
更新 2
我也碰巧有一台 Redmi 4。测试在该设备上按预期工作,无需任何代码更改。
提到的SO问题
以及相关问题,
添加代码片段和依赖项供任何想要查看的人使用,
测试代码
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 …Run Code Online (Sandbox Code Playgroud) 我最近更新了我的Android 应用程序项目(Android Gradle Plugin 7.0.3、targetSdk 30、JVM 11)的Travis CI 配置以使用新的命令行工具。我选择启动模拟器来运行仪器测试。我在用。system-images;android-19;google_apis;armeabi-v7aandroidx.test.espresso:espresso-core:3.4.0
模拟器启动并执行仪器测试,connectedDebugAndroidTest但全部失败并出现以下错误:
AboutActivityTest > renderBuildInformation[test(AVD) - 4.4.2] FAILED
java.lang.AssertionError: Activity never becomes requested state
"[DESTROYED, STARTED, RESUMED, CREATED]" (last lifecycle transition = "PRE_ON_CREATE")
at androidx.test.core.app.ActivityScenario.waitForActivityToBecomeAnyOf(ActivityScenario.java:338)
...
Run Code Online (Sandbox Code Playgroud)
Gradle 然后输出:
Caused by: org.gradle.api.GradleException: There were failing tests. See the report
at: file:///home/travis/build/Umweltzone/Umweltzone/Umweltzone/build/reports/androidTests/connected/index.html
at com.android.build.gradle.internal.tasks.DeviceProviderInstrumentTestTask.doTaskAction(DeviceProviderInstrumentTestTask.java:388)
at com.android.build.gradle.internal.tasks.NonIncrementalTask$taskAction$$inlined$recordTaskAction$1.invoke(BaseTask.kt:63)
at com.android.build.gradle.internal.tasks.Blocks.recordSpan(Blocks.java:51)
...
Run Code Online (Sandbox Code Playgroud)
完整构建日志:
如果我在 Pixel 2 设备、Android 11 (SDK 30) 上本地运行相同的测试,则会成功执行。
如何修复 Travis CI / Android 模拟器配置? …
android android-emulator android-lifecycle travis-ci android-espresso