Gradle Android:如何在不使用--info的情况下显示测试结果

kel*_*yfj 8 android gradle

我正在使用Gradle Android插件运行Android测试,并希望查看单独的测试结果.

从问题的答案Gradle:如何在控制台中实时显示测试结果?似乎我可以使用--info(打印出很多我不关心的其他详细垃圾)或者使用这个仅适用于Java插件(不是Android插件)的闭包


test {
    afterTest { desc, result -> 
        println "Executing test ${desc.name} [${desc.className}] with result: ${result.resultType}"
    }
}
Run Code Online (Sandbox Code Playgroud)

当我运行connectedCheck任务时,我可以使用其他选项/闭包来打印单个测试结果而没有其他所有"冗长".

Jar*_*ows 12

使用Gradle信息

这将打印以下所有信息Gradle:

gradle --info
Run Code Online (Sandbox Code Playgroud)

或使用Android Gradle插件:

android.testOptions.unitTests.all {
    // Configure whether failing tests should fail the build
    ignoreFailures false

    testLogging {
        events "passed", "skipped", "failed", "standardOut", "standardError"
    }
}
Run Code Online (Sandbox Code Playgroud)

Gradle直接使用:

allprojects {
    tasks.withType(Test) {
        testLogging {
            exceptionFormat "full"
            showCauses true
            showExceptions true
            showStackTraces true
            showStandardStreams true
            events = ["passed", "skipped", "failed", "standardOut", "standardError"]
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

请参阅:https://github.com/jaredsburrows/android-gradle-java-app-template/blob/master/gradle/compile.gradle#L20

输出:

io.github.hidroh.materialistic.data.SessionManagerTest > testView PASSED

io.github.hidroh.materialistic.data.SessionManagerTest > testIsViewFalse PASSED

io.github.hidroh.materialistic.data.SessionManagerTest > testIsViewNull PASSED

io.github.hidroh.materialistic.data.SessionManagerTest > testIsViewTrue PASSED

io.github.hidroh.materialistic.data.SessionManagerTest > testViewNoId PASSED
Run Code Online (Sandbox Code Playgroud)

资料来源: https ://github.com/hidroh/materialistic/blob/master/robolectric.gradle

Gradle文档: https ://docs.gradle.org/current/javadoc/org/gradle/api/tasks/testing/logging/TestLogEvent.html