GradleAndroid:如何在不使用--info的情况下显示测试结果
我正在使用Gradle android插件运行android测试,希望看到单独的测试结果 从对这个问题的回答来看,我似乎可以使用GradleAndroid:如何在不使用--info的情况下显示测试结果,android,gradle,Android,Gradle,我正在使用Gradle android插件运行android测试,希望看到单独的测试结果 从对这个问题的回答来看,我似乎可以使用--info(它会打印出许多我不关心的冗长垃圾),或者使用这个只对Java插件有效的闭包(而不是Android插件) 当我运行connectedCheck任务时,是否可以使用其他选项/闭包来打印单个测试结果,而不需要所有其他“详细信息”。使用Gradle信息 这将打印来自Gradle的所有信息: gradle --info 或者使用AndroidGradle插件: 或
--info
(它会打印出许多我不关心的冗长垃圾),或者使用这个只对Java插件有效的闭包(而不是Android插件)
当我运行connectedCheck
任务时,是否可以使用其他选项/闭包来打印单个测试结果,而不需要所有其他“详细信息”。使用Gradle
信息
这将打印来自Gradle
的所有信息:
gradle --info
或者使用AndroidGradle
插件:
或者直接使用Gradle
:
见:
输出:
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
来源:
Gradle文档:对于Android Studio(在com.Android.tools.build:Gradle:2.1.0和Gradle版本Gradle-2.10上测试),我添加了以下部分,以完整格式打印异常,并记录每个执行的测试:
apply plugin: 'com.android.application'
android { ... }
dependencies { ...}
tasks.withType(Test) {
testLogging {
exceptionFormat "full"
}
afterTest { desc, result ->
println "Executing test ${desc.name} [${desc.className}] with result: ${result.resultType}"
}
}
对我来说,在另一个答案中提到的所有选项仍然打印了大量详细的信息。因此,尽管要求不要使用信息,我还是成功地使用了以下内容。例如,如果您的测试在包
com.example.android
中,您可以使用:
gradle --info connectedDebugAndroidTest | grep "com\.example\.android\..* >"
将打印e。g、 :
com.example.android.login.LoginActivityTest > enterCredentialsTest[Testing_emulator(AVD) - 9] SUCCESS
“成功”这个词将是绿色的,这是非常棒的。如果您使用
Robolectric
,这可能与Robolectric Gradle插件有关,但这只会显示测试和结果:成功
/失败
。我认为最好的选择是在控制台中显示测试失败时的“完全异常”。所有HTML测试结果都是在您的构建/报告/测试中生成的。我不使用RoboeElectric-只使用普通的androidTestsYeah,我相信您已经解决了它<代码>--info
是您的最佳选择。添加Robolectric
非常简单,您可以添加它以使用他们的插件。对于错误,您希望这样:我们的测试需要很长时间才能运行,所以我希望看到成功和失败,只是为了确信没有什么可怕的事情发生。您知道如何将此应用于所有gradle(库)项目中的模块?将其放入顶级build.gradle失败,因为无法识别android
,而将其放入应用程序模块仅打印该模块中测试的输出。@user1405990将所有项目与任务一起使用。withType(Test)
apply plugin: 'com.android.application'
android { ... }
dependencies { ...}
tasks.withType(Test) {
testLogging {
exceptionFormat "full"
}
afterTest { desc, result ->
println "Executing test ${desc.name} [${desc.className}] with result: ${result.resultType}"
}
}
gradle --info connectedDebugAndroidTest | grep "com\.example\.android\..* >"
com.example.android.login.LoginActivityTest > enterCredentialsTest[Testing_emulator(AVD) - 9] SUCCESS