Android BDD 测试期间出现错误:java.lang.IllegalStateException:在应用程序中找不到撰写层次结构

问题描述 投票:0回答:1

我的应用程序有 bdd-test ,我使用 compose 和 espresso,但出现此错误: java.lang.IllegalStateException:应用程序中找不到撰写层次结构。可能的原因包括:(1)调用setContent的Activity没有启动; (2) setContent没有被调用; (3) setContent 在 ComposeTestRule 运行之前被调用。如果 Activity 调用了 setContent,请确保 Activity 在 ComposeTestRule 运行后启动。

这是我的代码的一部分: @WithJunitRule 类 ComposeRuleHolder {

   companion object {
       lateinit var composeTestRule: ComposeTestRule
   }

   @Rule(order = 0)
   @JvmField
   var composeRule: ComposeTestRule = createEmptyComposeRule()

   @Before
       fun before() {
       composeTestRule = composeRule
     }
}

在课堂上进行测试后:

fun myPage(func: MyPage.(ComposeTestRule) -> Unit) = MyPage.apply {
    func(
        ComposeRuleHolder.composeTestRule
    )
 }

@OptIn(ExperimentalTestApi::class)
object MyPage { ...
   ....
}

这是有效的,但大约两周后我遇到了这个错误: 任何想法? 谢谢

kotlin automated-tests android-jetpack-compose bdd android-espresso
1个回答
0
投票

TL;DR 确保您的手机或模拟器工作正常并且处于活动状态,而不是被阻止

这很有趣,但就我而言,设备被阻止了。我的意思是,我正在使用物理设备而不是模拟器进行测试,它进入了省电模式,屏幕关闭,手机被阻止。因此 android studio 尝试启动该 Activity 但无法执行此操作。确保您的手机或模拟器工作正常并且处于活动状态,而不是被阻止

© www.soinside.com 2019 - 2024. All rights reserved.