【问题标题】:Gradle: How to display androidTest results in the console?Gradle:如何在控制台中显示 androidTest 结果?
【发布时间】:2016-08-23 05:14:10
【问题描述】:

正如其他线程中所解释的,Gradle 可以配置为将测试结果记录到控制台中:

基本上,这可以通过以下任务进行设置:

tasks.withType(Test) {
    testLogging {
       // Custom configuration
    }
}

这适用于单元测试,看起来有点像这样:

...
:app:assembleDebugUnitTest
:app:testDebugUnitTest
:app:processDebugResources

com.example.StringsTest > formatValue PASSED
com.example.StringsTest > formatValueWithDecimals FAILED

1 test completed, 1 failed

此外,单元测试我还使用以下命令运行集成测试

$ ./gradlew connectedAndroidTest

当我在控制台中查看输出时,我缺少单个测试结果,因为它是为单元测试编写的。如何为检测测试配置测试日志记录?

【问题讨论】:

  • 这个JJD好运吗?
  • 还没有。老实说,我不得不将这些测试推迟一段时间。一旦事情“恢复正常”,我就会把它捡起来。您尝试过 hidro 的方法吗?
  • 不,我只是想要一个基于 Gradle 的方法。我希望像tasks.withTest这样的东西。

标签: android gradle integration-testing android-testing


【解决方案1】:

连接的测试将输出和事件记录到logcat,因为它在设备/模拟器上运行。测试事件记录在TestRunner 标签下。

我使用以下脚本在后台启动adb logcat,在执行测试时记录TestRunner事件,然后终止logcat进程。

adb logcat *:S TestRunner:V & LOGCAT_PID=$! ; \
./gradlew :app:cAT ; \
if [ -n "$LOGCAT_PID" ] ; then kill $LOGCAT_PID; fi

产生类似这样的东西:

[1] 90439
--------- beginning of system
--------- beginning of main
:app:preBuild UP-TO-DATE
:app:preDebugBuild UP-TO-DATE
...
:app:packageDebugAndroidTest UP-TO-DATE
:app:assembleDebugAndroidTest UP-TO-DATE
> Building 96% > :app:connectedDebugAndroidTest06-13 09:25:04.259  5460  5474 I TestRunner: run started: 23 tests
06-13 09:25:04.267  5460  5474 I TestRunner: started: testHomeClick(io.github.hidroh.tldroid.CommandActivityTest)
06-13 09:25:06.899  5460  5474 I TestRunner: finished: testHomeClick(io.github.hidroh.tldroid.CommandActivityTest)
06-13 09:25:06.903  5460  5474 I TestRunner: started: testRenderNoContent(io.github.hidroh.tldroid.CommandActivityTest)
06-13 09:25:08.128  5460  5474 I TestRunner: finished: testRenderNoContent(io.github.hidroh.tldroid.CommandActivityTest)
06-13 09:25:08.130  5460  5474 I TestRunner: started: testStateRestoration(io.github.hidroh.tldroid.CommandActivityTest)
06-13 09:25:09.547  5460  5474 I TestRunner: finished: testStateRestoration(io.github.hidroh.tldroid.CommandActivityTest)
...
06-13 09:25:35.283  5460  5474 I TestRunner: run finished: 23 tests, 0 failed, 0 ignored
:app:connectedDebugAndroidTest
:app:createDebugAndroidTestCoverageReport
:app:connectedAndroidTest

BUILD SUCCESSFUL

Total time: 1 mins 7.485 secs
[1]+  Terminated: 15          adb logcat *:S TestRunner:V

您当然可以调整 logcat 命令以使用您选择的记录器,例如颜色记录器,或更改 logcat filterspec 以显示更多事件。

【讨论】:

  • 完美运行!即使它不是“基于 gradle 的方法”
【解决方案2】:

简单的版本就是使用:

./gradlew connectedAndroidTest --info

在终端/控制台窗口中记录它需要一点时间,但它显示的一切都很好,颜色和格式

喜欢……

…ShowsIntroduction[SM-G950F - 7.0] SUCCESS 
…BackButtonReturnsToOnboardingScreen[SM-G950F - 7.0] SKIPPED

祝你好运&&玩得开心

【讨论】:

    猜你喜欢
    • 2011-04-27
    • 1970-01-01
    • 1970-01-01
    • 2023-02-25
    • 1970-01-01
    • 2023-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多