Как я могу структурировать тестовый каталог проекта в 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 для тестирования там.
Ответы
Ответ 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 для своего объекта, вы можете запустить его.