Как отладить один модульный тест robolectric в Android Studio

Я могу отлаживать свой проект Android Gradle, если запускаю все модульные тесты, используя следующие шаги:

Сначала настройте IDE с конфигурацией Gradle Run/Debug для модульного тестирования с использованием Robolectric и JUnit.

  1. в меню IDE выполните: Файл/Настройки/Компилятор/Gradle: снимите флажок «Использовать внутрипроцессную сборку».
  2. В IDE делаем: Run/Edit Configuration/+/Gradle
  3. Введите в поля следующие данные: Название: test , Проект Gradle: .../app/build.gradle, Задачи: test, Параметры скрипта: --debug --stacktrace

Далее для запуска/отладки тестов из IDE делаем:

  1. Выберите «тест» из конфигурации
  2. Для запуска: Запустить / Запустить «тест»
  3. Для отладки: запустить/отладить 'test'

Это позволяет мне запускать все тесты в отладчике.

Теперь я ищу способ сделать то же самое, но только для одного указанного теста. Любые предложения, как было бы здорово.


person Farrukh Najmi    schedule 22.12.2014    source источник
comment
Вы делаете все шаги для отладки теста в студии Android? Какой плагин используете вы? Некоторые плагины предоставляют вам полную робоэлектрическую поддержку в студии Android, например github.com/JCAndKSolutions/android-unit-test.   -  person nenick    schedule 28.12.2014


Ответы (1)


Это зависит от версии Gradle, которую вы используете. Если вы используете версию 1.x, добавьте следующий параметр сценария в конфигурацию запуска.

-Dtest.single=<testfilename> 

e.g.

-Dtest.single=MyTest

Вам не нужно беспокоиться о пути к файлу — просто имя файла, содержащего тестовый класс, без .java в конце.

Если вы используете gradle 2.x, добавьте следующий параметр сценария в конфигурацию запуска.

--tests <test class name>

e.g.

--tests com.example.data.MyTest

или --tests *.MyTest

С подстановочными знаками вы можете запускать не один тест, а подмножество ваших тестов.

--tests com.example.data.*
person drew    schedule 23.12.2014
comment
Я использую gradle 1.12, и -Dtest.single=MyTest (с заменой MyTest на конкретный тестовый класс impl без квалификации пакета) не работает. Вместо этого были запущены все тесты. Я попытался указать как параметры виртуальной машины, так и параметры сценария, но ничего не помогло. - person Farrukh Najmi; 30.12.2014
comment
Часть приведенного выше ответа, относящаяся к gradle 2.x, сработала для меня. Часть, относящаяся к gradle 1.x, этого не сделала. - person Farrukh Najmi; 31.12.2014