Подтвердить что ты не робот

Агрегирование gradle результатов мультипроектных испытаний с использованием TestReport

У меня есть структура проекта, которая выглядит следующим образом. Я хочу использовать TestReport функциональность в Gradle для агрегирования всех результатов теста в один каталог. Затем я могу получить доступ ко всем результатам тестирования через один файл index.html для ВСЕХ подпроектов. Как я могу это сделать?

.
|--ProjectA
  |--src/test/...
  |--build
    |--reports
      |--tests
        |--index.html (testresults)
        |--..
        |--..
|--ProjectB
    |--src/test/...
      |--build
        |--reports
          |--tests
            |--index.html (testresults)
            |--..
            |--..
4b9b3361

Ответ 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