2013-09-08 4 views
50

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

Я уже видел следующие ссылки.
Android Gradle Code Coverage
Но я не могу дождаться обновления до версии 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

+0

Пожелайте, чтобы у них было это, это было действительно приятно в Eclipse. Легче видеть, что вы пропустили. – JPM

ответ

44

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

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

Это guide и demo помогут вам.

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

enter image description here

Внутри этого configuraiton, вы будете иметь возможность выбрать

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

Если у вас возникли проблемы с созданием JUnit Ru n Конфигурация, вы должны обратиться за помощью к справочнику this.

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


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

Android Studio: "Run Unit tests with Coverage" button

+13

Отличный ответ: кнопка «Run with Coverage» имеет ключевое значение и по умолчанию справа от кнопки «Отладка». – Meanman

+1

Как вы это сделаете с помощью командной строки/gradle? –

+1

Для этого с помощью командной строки вам, скорее всего, понадобится использовать инструмент JaCoCo. https://docs.gradle.org/current/userguide/jacoco_plugin.html было бы хорошим местом для начала. – Caleb

1

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

+0

Я попытался установить JaCoCo в Android Studio, но это не сработало. У меня такой же результат. http://stackoverflow.com/questions/18358297/android-test-code-coverage-with-jacoco-gradle-plugin Я проверил другое, как установить JaCoCo в Android Studio, но я не получил решение , http://stackoverflow.com/search?q=android+jacoco Скажите, пожалуйста, знаете ли вы, как установить JaCoCo в Android Studio. –

+0

@ h.usune такой же выпуск для меня. Пинг меня, если вы найдете решение. – rekire

+0

http://www.gradle.org/docs/current/userguide/jacoco_plugin.html .. это должно помочь вам настроить jacoco на gradle. – user2511882

2

Я не думаю, что вы можете увидеть отчет покрытия визуального кода внутри Android Studio. Но вы можете попробовать Jacoco. Вам необходимо будет интегрировать его в файл build.gradle. Вы можете найти similar question & solution here

2

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

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

15

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

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

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

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

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

К сожалению 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 или ниже

+1

Я получаю покрытие 0% со встроенным Jacoco. Кто-нибудь знает, как это исправить? (Использование gradle 2.2.3) – dan

+0

Я получил 0% на новых устройствах Samsung, другие устройства работают нормально. – Alex

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