Gradle: как отобразить результаты androidTest в консоли?

Как объяснялось в других темах, 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

Когда я смотрю на вывод в консоли, я пропускаю результаты отдельных тестов, так как они написаны для модульных тестов. Как настроить протоколирование тестов для инструментальных тестов?


person JJD    schedule 28.04.2016    source источник
comment
Вам повезло с этим JJD?   -  person Jared Burrows    schedule 28.08.2016
comment
Еще нет. Честно говоря, мне пришлось отложить эти тесты на некоторое время. Я заберу его, как только все вернется на круги своя. Вы пробовали подход гидро?   -  person JJD    schedule 28.08.2016
comment
Нет, я просто хотел подход, основанный на Gradle. Я надеялся что-то вроде tasks.withTest.   -  person Jared Burrows    schedule 28.08.2016


Ответы (2)


Подключенные тесты регистрируют выходные данные и события в 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, чтобы показать больше событий.

person hidro    schedule 13.06.2016
comment
Работает отлично! Несмотря на то, что это не подход, основанный на градации - person HRVHackers; 12.10.2016

Простая версия предназначена только для использования:

./gradlew ConnectedAndroidTest --info

требуется немного времени, чтобы войти в окно терминала / консоли, но он показывает все красиво, цветно и отформатировано

как …

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

удачи повеселиться

person cV2    schedule 06.12.2017