【发布时间】:2022-11-09 17:24:40
【问题描述】:
我使用了 Android Studio 中的默认基本模板。我添加了一个失败的测试以确保一切正常......
class ExampleUnitTest {
@Test
fun addition_isCorrect() {
assertEquals(4, 2 + 2)
}
@Test
fun addition_isCorrect2() {
assertEquals(3, 2 + 2)
}
}
我跑了build.gradle,看到它失败了。接下来我将以下内容添加到应用程序build.gradle
android {
...
buildTypes {
...
debug {
testCoverageEnabled true
}
}
}
我运行了gradle test,它按预期失败了,但是当我运行gradle createDebugCoverageReport 时它并没有失败。该报告确实已创建,但并未反映我添加的测试的覆盖范围(这是有道理的,因为测试似乎没有运行)。
我缺少什么以及如何让 Jacoco 报告正确反映覆盖范围。这应该可以使用 Android Studio 和基本活动项目重新创建。
这是我尝试添加以增加覆盖率的测试示例...
@Test
fun addition_isCorrect() {
val test = FirstFragment();
test.onDestroyView()
Assert.assertEquals(4, 2+2)
}
我知道这不是一个很好的测试,但更多的是表明覆盖范围目前正在发挥作用。
更新
我确实注意到我只有一个 /build/reports/coverage/androidTest 文件夹而不是 /build/reports/coverage/test 文件夹来反映单元测试覆盖率。因此,似乎只有集成测试正在运行。
我也试过这个...
和
https://gist.github.com/mrsasha/384a19f97cdeba5b5c2ea55f930fccd4
但我明白了
无法为 org.gradle.testing.jacoco.tasks.JacocoReport 类型的任务“:app:testDebugUnitTestCoverage”设置只读属性“classDirectories”的值。
【问题讨论】:
标签: android jacoco android-studio-3.0