Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Gradle Android: How to Display test results without using --info

Tags:

android

gradle

I am running android tests using the Gradle Android plugin and want to see individual test results.

From answers to this Question Gradle: How to Display Test Results in the Console in Real Time? it seems I can either use --info (which prints a LOT of other verbose junk I don't care about) or use this closure which only works for the Java plugin (not the Android plugin)


test {
    afterTest { desc, result -> 
        println "Executing test ${desc.name} [${desc.className}] with result: ${result.resultType}"
    }
}

Is there some other option / closure I can use when I am running the connectedCheck task just to print the individual test results without all the other "verbosity".

like image 318
kellyfj Avatar asked May 18 '15 16:05

kellyfj


People also ask

How do I create a test report in Gradle?

How to generate a Test Report. Gradle generates a Test Report automatically when it runs the entire Test Suite. To do the same, run ./gradlew test (or gradlew. bat test from Windows), or run the test Gradle task from your IDE.

How do I skip test cases in Gradle?

To skip any task from the Gradle build, we can use the -x or –exclude-task option. In this case, we'll use “-x test” to skip tests from the build. As a result, the test sources aren't compiled, and therefore, aren't executed.

How do I run a test case in Gradle?

Run Gradle testsIn your Gradle project, in the editor, create or select a test to run. From the context menu, select Run <test name>. icon in the left gutter. If you selected the Choose per test option, IntelliJ IDEA displays both Gradle and JUnit test runners for each test in the editor.


1 Answers

Use Gradle info

This will print all information from Gradle:

gradle --info

or Use Android Gradle plugin:

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

    testLogging {
        events "passed", "skipped", "failed", "standardOut", "standardError"
    }
}

or Use Gradle directly:

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

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

Output:

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

Source: https://github.com/hidroh/materialistic/blob/master/robolectric.gradle

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

like image 176
Jared Burrows Avatar answered Sep 28 '22 10:09

Jared Burrows