Подтвердить что ты не робот

Задание тестовых зависимостей с помощью системы сборки Gradle Android

Я хочу указать зависимости для своих тестов и после прочтения Gradle Основы управления зависимостями. Хотя я мог просто добавить вызовы testCompile к моим объявлениям зависимостей:

dependencies {
    compile group: 'com.squareup.dagger', name: 'dagger', version: '1.0.0'


    testCompile group: 'junit', name: 'junit', version: '4.11'
    testCompile group: 'com.squareup', name: 'fest-android', version: '1.0.1'
}

Однако это сообщение об ошибке не появляется:

> Could not find method testCompile() for arguments [{group=junit, name=junit, version=4.11}] on project ':simstatus'.

Я что-то пропустил?

(Полный gradle файл сборки для справки)

4b9b3361

Ответ 1

Система сборки Android не использует стандартный плагин Java Gradle.

В его документации говорится:

Как упоминалось ранее, рядом с основным исходным кодом SetSet является androidTest sourceSet, который по умолчанию находится в src/androidTest/

Кроме того, sourceSet может быть настроен на наличие собственных зависимостей. По умолчанию приложение и его собственные зависимости добавляются в путь класса test test, но его можно расширить с помощью

dependencies {
    androidTestCompile 'com.google.guava:guava:11.0.2'
}

Ответ 2

Просто, чтобы ответить на этот вопрос в полном объеме, это то, что необходимо для решения проблемы. Поскольку Junit требуется для локального тестирования, а guava может потребоваться для androidTest, DSL для Android должен содержать следующее:

android {
    :
    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src/main/java']
            res.srcDirs = ['res']
            assets.srcDirs = ['assets']
                :
        }
        test {
            java.srcDirs = ['src/test/java']
            resources.srcDirs = ['src/test/resources']
                :
        }
        androidTest.setRoot('tests')
    }
    :
}

The: означает другие утверждения, которые вам нужны. Также обратите внимание, что папки могут быть другими, чем те, что указаны выше.