Я хочу, чтобы Robolectric работал с Android Studio, и я пытаюсь использовать [gradle-android-test-plugin][1] после просмотра ответов на этот [вопрос][2], но мне не повезло.
- Я создал совершенно новый проект Android и назвал его MyApp.
- Я следовал всем инструкциям в разделе «Использование» README.
- У меня еще не было кода для тестирования в моем новом проекте, поэтому я скопировал классы (включая `RobolectricGradleTestRunner`) из
gradle-android-test-plugin/example/src/test/java/com/example
и
gradle-android-test-plugin/example/src/main/java/com/example
каталоги в соответствующие пути к файлам в моем новом проекте MyApp.
Я никогда раньше не реализовывал модульное тестирование для Android и не знаю, что делать дальше. Я успешно запустил ./gradlew install
в корневом каталоге плагина, но то же самое в корневом каталоге моего нового проекта ничего не дало. Он бросает эту жалобу:
Task 'install' is ambiguous in root project 'MyApp'. Candidates are: 'installDebug', 'installTest'.
Я совсем не знаком с Gradle, поэтому, если не читать учебник по самому Gradle, я не уверен, как решить эту проблему.
Если я войду в каталог MyApp, содержащий AndroidManifest.xml
, и попробую ../gradlew clean check
построить и запустить тесты, я получу эту ошибку:
Could not determine the dependencies of task ':MyApp:testDebug'.
У Android Studio, похоже, нет проблем с поиском моих зависимостей. Может ли кто-нибудь указать мне направление для запуска моих тестов, пожалуйста? Я предполагаю, что это простая команда терминала или что-то, что не было упомянуто в README плагина. Ваше здоровье!
редактировать:
Вот мой build.gradle
. Я знаю, что он структурно не идентичен проекту примера, включенному в плагин, но эта структура дала мне идентичные ошибки.
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.5.+'
classpath 'com.squareup.gradle:gradle-android-test-plugin:0.9.+'
}
}
apply plugin: 'android'
apply plugin: 'android-test'
repositories {
mavenCentral()
}
android {
compileSdkVersion 18
buildToolsVersion "18.0.1"
defaultConfig {
minSdkVersion 11
targetSdkVersion 18
}
}
dependencies {
compile 'com.android.support:support-v4:18.0.0'
testCompile 'junit:junit:4.11'
testCompile 'org.robolectric:robolectric:2.1.+'
testCompile 'com.squareup:fest-android:1.0.+'
}
edit2: Помимо того факта, что я выдавал неправильные команды (как указано в ответе Равиндры), я также не понял, что моя версия Gradle была слишком новой (как указывает комментарий Джейка).