Android:Robolectric 测试永远不会完成,永远运行(MAC m2 苹果硅)

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

我正在尝试使用 Robolectric,但无法使其工作。即使我遵循官方文档并使用像这样的准系统、超级简单的示例,也没有测试完成:

import org.junit.Assert.assertEquals
import org.junit.Test
import org.junit.runner.RunWith
import org.robolectric.RobolectricTestRunner

@RunWith(RobolectricTestRunner::class)
class ExampleRobo {

    @Test
    fun someTest() {
        assertEquals(4, 2 + 2)
    }
}

如果我运行测试,它永远不会完成,它看起来像这样 - 永远旋转......

我的开发设置:

  • Mac 操作系统(m2 苹果硅)
  • AS 刺猬 | 2023.1.1 补丁 2
  • Gradle 8.2 和 AGP 8.2.1

这是我的 gradle 测试设置:

// JUnit 4 & 5
testImplementation("junit:junit:4.13.2")
testImplementation("org.junit.jupiter:junit-jupiter:5.8.1")

// JUnit vintage (so we can use simultaneously JUnit 4 & 5)
testImplementation("org.junit.vintage:junit-vintage-engine:5.8.1")

// external libraries (Mockk & Robolectric)
testImplementation("io.mockk:mockk:1.13.10")
testImplementation("org.robolectric:robolectric:4.12")

注意:我知道 JUnit5 的问题,因此我在 Robolectric 测试中仅使用 JUnit4 - 请参阅导入。我仅在其他课程测试中使用 JUnit5。

android kotlin unit-testing robolectric
1个回答
0
投票

您可以使用调试器运行测试,暂停它,然后看看为什么它被卡住。 Robolectric 首先下载 Android 框架,因此很可能是下载导致了问题。您还可以像这样启用日志记录:

android {
    testOptions {
        unitTests {
            all { test ->
                test.systemProperties["robolectric.logging.enabled"] = "true"
            }
        }
    }
}

这些文件可能会在

~/.m2/repository/org/robolectric/android-all-instrumented/
下载。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.