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

Как я могу структурировать тестовый каталог проекта в Android Studio?

Для этого пока нет соглашения, но как я могу структурировать тестовый каталог для Android Studio, теперь то, что указано на странице Android testing, отличается?

В частности, любые подсказки о том, как получить тесты JUnit и работать в Android Studio, будут полезны, спасибо.

Кроме того, использование инструмента android теперь не очень помогает, так как с Android Studio все немного отличается.

Update:

Я попытался настроить тестовую папку и запустить ее, но все, что я получаю, это следующее:

Running tests
Test running startedTest running failed: Unable to find instrumentation info for:ComponentInfo{<project-package-name>/android.test.InstrumentationTestRunner}
Empty test suite.

Я также попытался добавить стандартный файл AndroidManifest.xml для тестирования там.

4b9b3361

Ответ 1

ОБНОВЛЕНИЕ

Начиная с Build Tools 19.1.0 и сборки плагина 0.11.0 файлы build.gradle должны иметь testPackageName, переименованный в testApplicationId (также имя_пакета следует переименовать в androidId)

Плагин build plugin 0.9.0 instrumentTest переименован в androidTest. Это все, что нам нужно для тестирования.

Вот пример 0.11. + DSL

android {
    compileSdkVersion 19
    buildToolsVersion "19.1.0"

    defaultConfig {
        minSdkVersion 16
        targetSdkVersion 19
        versionCode 1
        versionName "1.0"
        androidId "org.homelab.lab"
        testApplicationId "org.homelab.lab.test"
        testInstrumentationRunner "org.homelab.lab.test.Runner"
    }

    ...
}

GOTCHAS: если ваш файл сборки содержит определения testPackageName и testInstrumentationRunner, удалите их

Для версии 0.5.0 - 0.8. +

Android Studio использует плагин версии Gradle версии 0.5. +, который следует принципам Gradle SourceDir.

Android Studio project structure

Как заставить его работать:
1.update SDK
2. установите или обновите Gradle до 1.6 (сообщите о проблемах с 1.7) или придерживайтесь обертки Gradle
3. Не используйте Android Studio для запуска задачи управления, используйте команду Gradle

gradle connectedCheck

4. Не используйте тот же пакет для тестирования и основного apk
5.check результаты с помощью браузера

<project>/build/reports/instrumentTests/index.html

Gotchas:
Если тестовый пакет и основной пакет одинаковы, он может создать пустой TestSuite. Результат вводит в заблуждение, поскольку Gradle не сообщает о проблемах, но отчеты показывают, что ни один класс не был протестирован.

EDIT:

Ниже приведена часть build.gradle, которая настраивает тесты приборов, необходимые до 0.9.0:

android {
    compileSdkVersion 14
    buildToolsVersion "17.0.0"

    defaultConfig {
        minSdkVersion 14
        targetSdkVersion 17
        testPackageName "org.homelab.lab.test"
        testInstrumentationRunner "org.homelab.lab.test.Runner"
    }

    ...
}

Пример проекта https://github.com/swavkulinski/android-studio-instrumentation-test

Ответ 2

Теперь в Android Studio вы можете настроить инструментальные тесты, просто следуя соглашению о размещении тестов в инструментеDirectory. Gradle нужно знать только о любых зависимостях, которые у вас есть, что в моем случае - Robotium:

Android Studio Screenshot

dependencies {
    androidTestCompile 'com.jayway.android.robotium:robotium-solo:5.0.+'
}

Когда тест будет завершен, вы получите результаты, отображаемые в графическом интерфейсе, так что вам вообще не нужно использовать какую-либо командную строку! Вы также можете щелкнуть правой кнопкой мыши модуль над тестом JUnit, чтобы запустить все тесты JUnit.

Ответ 3

Я тоже столкнулся с этой проблемой. AndroidStudio только строит и устанавливает основное приложение APK на устройство и не выполняет тесты со следующим сообщением:

Тестирование запущено Запуск запущенного теста: невозможно найти информацию об оборудовании для: ComponentInfo {com.example.app.test/android.test.InstrumentationTestRunner}

Пустой набор тестов.

Тем не менее, запуск connectedCheck Gradle предназначен для создания и установки двух APK и успешного выполнения контрольных тестов. Оказывается, вы можете попросить Gradle собрать и установить только APK инструментария, запустив цель installDebugAndroidTest. После запуска этой цели AndroidStudio удалось хорошо провести тесты на аппаратные средства и смог даже присоединить отладчик! Я предполагаю, что вам нужно обновить APK инструментария каждый раз, когда вы меняете сами тесты, но не иначе.

Прибор APK, установленный на устройстве, может быть указан путем запуска: adb shell pm list instrumentation

Ответ 4

У меня есть другой способ решить эту проблему, если ваша причина просто является проблемой запуска конфигурации.

проверьте свою конфигурацию запуска, если конфигурация вашего проекта - Android Tests, но не приложение для Android, а затем вы столкнетесь с

"Running tests
Test running startedTest running failed: Unable to find instrumentation info for:ComponentInfo{<project-package-name>/android.test.InstrumentationTestRunner}
Empty test suite."

так что удалите конфигурацию Android Tests и добавьте конфигурацию запуска приложений для Android для своего объекта, вы можете запустить его.