Gradle: 如何在控制台显示androidTest的结果?

30

正如在其他帖子中所解释的那样,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,你有什么进展吗? - Jared Burrows
还没有。老实说,我不得不暂时延迟这些测试。一旦事情“恢复正常”,我会立即开始。你试过hidro的方法吗? - JJD
1
不,我只想要基于Gradle的方法。我希望有类似于“tasks.withTest”的东西。 - Jared Burrows
2个回答

13

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

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

adb logcat *:S TestRunner:V -T 1 & 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 以显示更多事件。


2
完美运行!尽管它不是“基于Gradle的方法”。 - HRVHackers
FYI:添加了“-T 1”以避免在运行测试之前进行长列表。 - Rudolf Adamkovič

6
简单的方法是使用:

./gradlew connectedAndroidTest --info

稍等一会儿,终端/控制台窗口会记录所有内容,显示漂亮,颜色和格式都很好。
例如…
…ShowsIntroduction[SM-G950F - 7.0] SUCCESS 
…BackButtonReturnsToOnboardingScreen[SM-G950F - 7.0] SKIPPED

祝你好运并愉快!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接