Как настроить каталог тестов Android?

Сборка Android Gradle заставляет мои AndroidTests находиться в src/androidTests. Как изменить это на другой каталог по моему выбору?

Вот некоторая предыстория: я переношу проект из eclipse.

Согласно документации по сборке, когда я добавляю это в свой файл сборки Gradle:

androidTest.setRoot('tests')

Сборка Android Gradle делает следующее: «Примечание: setRoot() перемещает весь исходный набор (и его подпапки) в новую папку. Это перемещает src/androidTest/* в тесты/*»

Это отлично подходит для сборки и заставляет ее работать нормально.

Однако это заставляет структуру моего проекта помещать мои androidTests в: src/AndroidTest. Из-за этого Eclipse не может скомпилироваться, поскольку считает, что весь тестовый код должен находиться в пакете с именем androidTests.com.etc.etc.etc...

Я хотел бы установить какое-то свойство следующим образом:

androidTest
{
    java.srcDirs = ['tests']
}

person gregm    schedule 19.03.2014    source источник


Ответы (2)


androidTest.setRoot('tests') сбросит корень исходных наборов, чтобы

  • Java находится под tests/java
  • разрешение андроида ниже tests/res
  • и т.д...

Вы можете настроить их отдельно, хотя с помощью

android {
  sourceSets {
    androidTest {
      java.srcDirs = ['tests']
    }
  }
}

Примечание: здесь используется android.sourceSets, потому что подключаемый модуль Android использует пользовательские наборы источников.

person Xavier Ducrohet    schedule 19.03.2014
comment
Теперь я становлюсь придирчивым, но есть ли способ изменить исходный каталог, чтобы он был просто тестами, а не тестами/java? - person gregm; 19.03.2014
comment
Это то, что делает приведенный выше код. В нем говорится, что ваша папка java для тестов - tests. - person Xavier Ducrohet; 19.03.2014

Есть небольшие вариации того, как это сделать. У меня сработало следующее:

android {
    sourceSets {
        androidTest{
            java.srcDir file('src/tests/java')
        }
    }
}
person Maxwell    schedule 05.05.2014