android - Jetpack compose:没有方法 shouldWaitForActivitiesToComplete()
问题描述
我正处于我想为应用程序编写androidTests的状态。
阅读Testing Compose的文档,我创建了一个文件并编写了一个简单的测试来检查进度:
检查Test.kt:
class ExamineTest {
@get:Rule
val composeTestRule = createComposeRule()
@Test
fun atLaunchDefaultTextExists() {
composeTestRule.setContent {
Text(text = "text")
}
composeTestRule.onNodeWithText("text").assertIsDisplayed()
}
}
我还按照文档中的建议添加了调试AndroidManifest
以app/src/debug/
启用 ComposeActivity。
但是,通过运行测试,什么都不会发生,测试也不会开始执行。
这是测试存货的状态(应用程序已构建和部署。但尚未开始运行测试。应用程序的正常执行工作正常):
我错过了设置的一部分吗?测试没有运行的原因是什么?
撰写:1.0.0-alpha05 AS:4.2-canary 14
更新
在调试测试并检查它的日志后,我看到了这个错误:
No method shouldWaitForActivitiesToComplete() in
androidx/test/runner/AndroidJUnitRunner
解决方案
确保
test:monitor
并且test:core
是最新的。
在 Android-test github 上查看了这个问题,我意识到这个问题可能是因为test:monitor
比需要的更老。所以我做了这些步骤:
检查 Gradle 任务
app:dependencies
以查看test:monitor
库的版本如果它确实很旧(
1.2.0
不是最新的1.3.0
),请找到降级它的库。就我而言
fragment-testing
,将其降级为1.2
,因此我将其删除。
在确保test:monitor
并且test:core
是最新的之后,我终于可以运行测试了
推荐阅读
- json - 从 url 获取图像后出现失败的 url 错误
- postgresql - 如何在对我的 postgres 数据库的 NestJS 的 typeORM 查询中禁用自动降级?
- git - 如何将 Git 目录中的所有目录视为普通目录,包括 .git/?
- node.js - 将大数据从反应前端发布到节点服务器的快速方法是什么?
- javascript - Firestore 安全规则适用于删除和更新,但不适用于读取?
- laravel - npm run dev 在 Laravel 7 项目中不起作用
- c++ - 从 CRTP 基类对象调用派生类方法
- android - Composable 之间的通信
- python - 数千人在 MacOS 上用 python 分组
- mongodb - 使用 Mongoose 遍历数组并从 MongoDB 返回第一个匹配项