Ответ 1
-
Если проверка запускает все проверки... не следует ли запускать те, которые я получаю от connectedInstrumentTest? вам может потребоваться запустить connectedInstrumentTest задачи в качестве зависимости для проверки задачи.
check.dependsOn connectedInstrumentTest
-
Как я могу запускать тесты, которым не нужна среда Android?
Для проектов Android мы можем обсудить около 3 типов тестов
- Тест Junit
- Robolectric Test
- Тестирование прибора
Тест Junit
Мы не можем использовать простой тест junit для проверки связанных с Android классов. Что мы можем сделать, так это отдельные классы ядра Java для проекта библиотеки java и добавить эту зависимость к проекту андроида.
Мы можем использовать robolectric test для запуска модульных тестов вне эмулятора. Это делает тесты быстрыми и легкими для настройки с серверами CI.
Для запуска robolectric test мы используем gradle-android-test-plugin Он четко описывает, как использовать этот плагин.
Структура проекта
Мы должны использовать структуру папок по умолчанию, чтобы использовать этот плагин. Мы должны использовать папку под названием "test", чтобы сохранить robolectric тесты:
MyProject/
| settings.gradle
| build.gradle
- app/
| build.gradle
-main
-java
-com.example.calculator
-test
-java
-com.example.calculator.robolectrictests
файл сборки
buildscript {
repositories {
mavenCentral()
maven {
url 'https://oss.sonatype.org/content/repositories/snapshots/'
}
}
}
dependencies {
classpath 'com.android.tools.build:gradle:0.6.+'
classpath 'com.squareup.gradle:gradle-android-test-plugin:0.9.1-SNAPSHOT'
}
apply plugin: 'android'
apply plugin: 'android-test'
repositories {
mavenCentral()
}
android {
compileSdkVersion 19
buildToolsVersion "19.0.0"
defaultConfig {
minSdkVersion 8
targetSdkVersion 19
}
}
dependencies {
compile 'com.android.support:appcompat-v7:+'
testCompile 'junit:junit:4.10'
testCompile 'org.robolectric:robolectric:2.1.+'
testCompile 'com.squareup:fest-android:1.0.+'
}
Эта тестовая задача будет автоматически выполняться с задачей проверки.
Тест инструмента
Как вы уже упоминали, для этого требуется использовать эмулятор android. Это делает тесты медленными, что означает, что они не являются хорошим способом делать TDD.
Мы можем использовать robolectric test в качестве модульных тестов в процессе TDD. Инструментальный тест, который мы можем использовать в качестве интегрированного теста в TDD.