Ответ 1
Я думаю, что ответ должен быть теперь уже в Android Studio 1.1 (и в текущем плагине gradle). Они внедрили поддержку unit test. Это все еще экспериментально, но меньше, чем наши предыдущие усилия здесь:) См. здесь.
Как я могу добавить модульные тесты в свои Android-проекты в Android Studio (IntelliJ)?
Точнее: я хочу добавить папку с тестовым кодом (JUnit 4) и выполнить оттуда тесты с помощью обычного установленного JDK (не в эмуляторе Android). До сих пор я добавлял тестовые файлы/java/'в мой модуль и добавлял "test" в качестве источника и junit в качестве тестовой зависимости:
sourceSets {
instrumentTest.setRoot('src/test')
}
dependencies {
instrumentTestCompile 'junit:junit:4.+'
// ...
}
Когда я сейчас выбираю Запустить "Все тесты" в папке test/java, он дает мне исключение UnsupportedOperationException.
Что мне не хватает? Как вы запускаете модульные тесты для проектов Android?
Бонусные баллы за рекомендацию плагина, который работает как "Infinitest" в Eclipse, где я могу просто сохранить класс, и его unit test будет автоматически выполнен.: -)
PS: Я не хочу использовать https://github.com/JakeWharton/gradle-android-test-plugin, поскольку этот плагин, похоже, уже не рекомендуется.
Я думаю, что ответ должен быть теперь уже в Android Studio 1.1 (и в текущем плагине gradle). Они внедрили поддержку unit test. Это все еще экспериментально, но меньше, чем наши предыдущие усилия здесь:) См. здесь.
Я провел прошлые недели (также) по этому поводу. Собственно, на том, что на стероидах, так как мне также пришлось поместить Robolectric в горшок.
Короткий ответ: если я не запутаю эту ошибку с чем-то другим, я думаю, что вы пытаетесь запустить модульные тесты с помощью Android testrunner.
Длинный ответ: Я закончил с устаревшим плагином (после того, как попробовал его, а затем попытался поместить тесты в папку androidTest), потому что он решил для меня некоторые проблемы с Дженкинсом. Недостатком является то, что он не распознает саму папку как код java или android, поэтому завершение кода работает со всем, кроме содержимого папки (например, он правильно видит базовый проект и все зависимости).
Мне нужно было запустить его в Android Studio, чтобы создать тестировщик JUnit (не Android). Вероятно, он не будет работать из коробки, потому что порядок пути к классам запутан (хотя он отлично работает, просто запуская тесты в gradle).
В основном я должен был выполнить следующие шаги:
Отредактируйте аргумент -classpath
, выполнив следующие действия:
Добавляем -classpath
, который вы только что создали, к параметрам VM для runner после -ea
(Я нашел это решение или его части во многих местах, очень хороший: http://kostyay.name/android-studio-robolectric-gradle-getting-work/, и он применяется также к простому блоку тесты).
Альтернатива, которую я не пробовал, но я подумал, было предложено этим утром (см. последний пост): https://groups.google.com/forum/#!topic/adt-dev/Y8-ppkWell0
У меня много разбросанных знаний прямо сейчас из-за многих проблем, которые я обнаружил из-за предварительного просмотра SW и тонны информации, которую я должен был пройти, чтобы решить их, но если у вас есть более конкретная проблема по этой теме, просто позвольте я знаю:)