Агрегирование gradle результатов мультипроектных испытаний с использованием TestReport
У меня есть структура проекта, которая выглядит следующим образом. Я хочу использовать TestReport функциональность в Gradle для агрегирования всех результатов теста в один каталог.
Затем я могу получить доступ ко всем результатам тестирования через один файл index.html для ВСЕХ подпроектов.
Как я могу это сделать?
.
|--ProjectA
|--src/test/...
|--build
|--reports
|--tests
|--index.html (testresults)
|--..
|--..
|--ProjectB
|--src/test/...
|--build
|--reports
|--tests
|--index.html (testresults)
|--..
|--..
Ответы
Ответ 1
Из Пример 23.13. Создание отчета unit test для подпроектов в Gradle Руководство пользователя:
subprojects {
apply plugin: 'java'
// Disable the test report for the individual test task
test {
reports.html.enabled = false
}
}
task testReport(type: TestReport) {
destinationDir = file("$buildDir/reports/allTests")
// Include the results from the `test` task in all subprojects
reportOn subprojects*.test
}
Полностью рабочий образец доступен из samples/testing/testReport
в полном дистрибутиве Gradle.
Ответ 2
Для 'connectedAndroidTest существует подход, опубликованный google. (https://developer.android.com/studio/test/command-line.html#RunTestsDevice ( Отчеты с несколькими модулями раздел))
-
Добавьте плагин "android-reporting" к вашим проектам build.gradle.
apply plugin: 'android-reporting'
-
Выполните тесты Android с дополнительным аргументом mergeAndroidReports. Он объединит все результаты тестирования модулей проекта в один отчет.
./gradlew connectedAndroidTest mergeAndroidReports