Is there any way to turn on the test logging in the console output?
I know that we can look at the test results generated in a HTML file and check standard output there, but I find it a little bit inconvinient.
I know that there is a way to do this with standard java plugin:
test {
testLogging {
events "passed", "skipped", "failed", "standardOut", "standardError"
}
}
But using it in an Android project causes an error:
Could not find method test()
Applying java plugin is unacceptable, of course, as it's not compatible with Android plugins.
android {
...
testOptions {
unitTests.all {
// All the usual Gradle options.
testLogging {
events "passed", "skipped", "failed", "standardOut", "standardError"
outputs.upToDateWhen {false}
showStandardStreams = true
}
}
}
}
In my case, I followed this document and added the testLogging
option as above. This should printout the log for the unit tests written under src/test
folder but not the src/androidTest
one. At the moment of this answer, I was using Android Studio 2.0 preview and gradle 2.8. The commands were ./gradlew test
and ./gradlew test --continue
in which ran in iTerm 2.
This should do it
android {
...
testOptions.unitTests.all {
testLogging {
events 'passed', 'skipped', 'failed', 'standardOut', 'standardError'
}
}
}
Source: https://groups.google.com/forum/#!topic/adt-dev/LwZiKTnj8Bc
Even more pretty solution than @ninjahoahong's (Thanks to Tricky Android blog).
Just add next code to your project level build.gradle
to allprojects
' body:
allprojects {
// ...
tasks.matching {it instanceof Test}.all {
testLogging.events = ["failed", "passed", "skipped"]
}
}