Как получить покрытие кода с помощью Android Studio?

Я разрабатываю приложения с помощью Android Studio.
Мне удалось запустить тестовый код.
Но я не знаю, как получить покрытие кода в андроид-студии.

Я уже видел следующие ссылки.
Android Gradle Покрытие кода
Но я не могу дождаться обновления до версии v0.6, поддерживающей emma.

Конфигурация проекта выглядит следующим образом.

Основной код
MyProject/AppName/SRC/Основной/Java/MyPackage/MyClass.java

Тестовый код
MyProject/AppName/SRC/instrumentTest/Java/MyPackage/тест/MyClassTest.java

Конфигурация проекта
MyProject
├─build.gradle
└─AppName
    ├─build.gradle
    └─src
        ├─main
        │   ├─java
        │   │   └─mypackage
        │   │       └─MyClass.java
        │   ├─res
        │   └─AndroidManifest.xml
        └─instrumentTest
            └─java
                └─mypackage
                    └─test
                        └─ MyClassTest.java

+63
источник поделиться
7 ответов

С новой версией Android Studio 1.2 вы можете запускать свои модульные тесты и видеть все покрытие в среде IDE.

Во-первых, вам нужно запустить модульные тесты в IDE. (если вы уже можете, пропустите этот шаг)

Это руководство и демонстрация помогут вам.

Во-вторых, вам нужно создать конфигурацию JUnit Run

enter image description here

В этой конфигурации вы сможете выбрать

  • Тестовый вид: "Все в упаковке"
  • Пакет: [пакет, в котором находятся ваши тесты, например: "com.myapp.tests"]
  • Поиск тестов: по всем зависимостям модуля настройка)
  • VM -options: -ea
  • Рабочий каталог: [каталог вашего проекта]
  • Используйте classpath мода: [выберите ваш модуль]

Если у вас возникли проблемы с созданием конфигурации запуска JUnit, обратитесь за помощью к этому руководству.

Наконец, в последней версии Android Studio вы сможете запустить свою конфигурацию JUnit-Run, нажав кнопку "Выполнить с покрытием".


В Android Studio 2.1.3 это метка Run Unit tests with Coverage, где Unit test - это имя вашей тестовой конфигурации, как показано на следующем снимке экрана:

Android Studio: "Run Unit tests with Coverage" button

+58
источник

Есть так много ответов, в которых показано, как применить плагин jacoco к проекту студии Android, который устарел, и потратил много времени на то, чтобы найти решение для недавно студии Android (My Android Studio - версия 2.1.2).

  • jacoco плагин встроен для Android Studio gradle, вам нужно просто включить его, как показано ниже:
  buildTypes {
    ...
    debug {
      testCoverageEnabled true
    }
  }
  • После выполнения выше выполните задачу unit test ./gradlew testDebugUnitTest

  • Затем создайте файлы покрытия: ./gradlew createDebugCoverageReport

  • Файлы защиты будут созданы в папке <module>/build/reports/coverage/debug, включите index.html, которую вы можете открыть в браузере, и report.xml, которые вы можете использовать для получения отчета jenkins jacoco plugin или другого, продолжающего интеграцию инструменты.

Для тех, кто получил 0% охват с помощью jenkins jacoco plugin, обязательно используйте правильную версию. цитата из их сайт:

К сожалению, JaCoCo 0.7.5 нарушает совместимость с предыдущим двоичным форматы файлов jacoco.exec. Плагин JaCoCo до версии 1.0.19 основан на JaCoCo 0.7.4, поэтому вы не можете использовать эту версию с проектами, которые уже используют JaCoCo 0.7.5 или новее. Плагин JaCoCo начиная с версии 2.0.0 использует JaCoCo 0.7.5 и, следовательно, требует также эта версия будет использоваться в ваших проектах. Пожалуйста, придерживайтесь JaCoCo плагин 1.0.19 или ниже, если вы все еще используете JaCoCo 0.7.4 или ниже

+30
источник
другие ответы

Связанные вопросы


Похожие вопросы

Пробовали ли вы использовать плагин Jacoco для получения покрытия кода для вашего проекта? Это хороший плагин, который дает вам покрытие на основе вашего пакета или отдельных классов. Я не уверен, как вы настраиваете Jacoco для использования с Gradle, так как я использую Maven. Проверьте ссылку: и посмотрите, поможет ли она вам

+2
источник

Мы используем maven для создания нашего приложения и кобертуры для отчетов о покрытии кода

оба очень легко интегрируются

Интеграция андроидов maven:

http://www.vogella.com/tutorials/AndroidBuildMaven/article.html

Пример покрытия кода Maven + Cobertura Пример:

http://www.mkyong.com/qa/maven-cobertura-code-coverage-example/

+2
источник

Я не думаю, что вы можете увидеть отчет о покрытии визуального кода внутри Android Studio. Но вы можете попробовать Jacoco. Вам нужно будет интегрировать его в ваш файл build.gradle. Вы можете найти аналогичный вопрос и решение здесь

+2
источник

Android studio gradle имеет встроенный плагин Jacoco, который вы можете использовать для поиска покрытия кода. Я написал статью, чтобы шаг за шагом настроить jaococo, чтобы найти покрытие кода для тестового примера Espresso, но вы также можете использовать его для Robotium. проверьте это.

http://qaautomated.blogspot.in/2016/03/how-to-find-code-coverage-with-jacoco.html

+2
источник

Включите testCoverage в файле модуля build.gradle

buildTypes {
        debug {
            testCoverageEnabled true
        }
    }

а затем

Щелкните правой кнопкой мыши на тесте → пакет java и выберите Run Tests in Java with Coverage

0
источник

Посмотрите другие вопросы по меткам или Задайте вопрос