2016-04-28 3 views
21

Как объяснено в других потоках Gradle можно настроить на протоколирование результатов испытаний в консоль:Gradle: Как отобразить результаты androidTest в консоли?

В принципе, это может быть установка с помощью следующей задачи :

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 

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

+0

Удачи с этим JJD? –

+0

Пока нет. Честно говоря, мне пришлось отложить эти тесты на некоторое время. Я заберу его, как только все «вернется в норму». Вы пробовали подход hidro? – JJD

+0

Нет, мне просто нужен подход, основанный на Грейдле. Я надеялся что-то вроде 'tasks.withTest'. –

ответ

8

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

+0

Работает отлично! Хотя это не «подход, основанный на градиенте», – gorbysbm

2

Легкая версия просто использовать:

./gradlew connectedAndroidTest --info

это сделать littlebit, чтобы войти в окне терминала/консоли, но он показывает все хорошо , цветные и отформатирован

как ...

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

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

Смежные вопросы