Просто скачали Android Studio, основанную на идее Intellij.
Как создать тесты?
Я заметил, что есть возможность создать тестовый модуль, но это, похоже, ничего не делает, только создайте новый проект с src
Я также попытался нажать горячую клавишу CTRL + AlT + T, которая позволяет создавать модульные тесты для существующего класса, но, похоже, хочет поместить его в текущий проект. Конечно, это не помогает с TDD
У кого-нибудь есть здесь опыт?
Ответы:
Этот ответ предназначен для людей, которые только начинают тестирование Android. Я приведу два простых примера, которые помогут вам понять, как работает тестирование. Если вы будете следовать этим инструкциям в течение следующих 10 минут, у вас будет все готово, чтобы начать добавлять тесты в собственное приложение. Думаю, вы удивитесь, насколько это просто. Конечно, был.
Введение в тестирование Android
Вам предстоит пройти два разных типа тестов.
Context
.)Создайте новый проект, и вы увидите следующие папки по умолчанию.
Все уже есть и ждут, когда вы создадите свои тесты. Все уже настроено!
Как создавать локальные модульные тесты
Откройте
ExampleUnitTest
файл, показанный на изображении выше. это должно выглядеть примерно так:Нажмите двойную зеленую стрелку, чтобы запустить все тесты, или одну зеленую стрелку, чтобы запустить только один. (В этом случае есть только один тест, поэтому они оба делают одно и то же.)
Он должен пройти (пока
2 + 2
он еще остается,4
когда вы читаете этот ответ). Поздравляем, вы только что выполнили свой первый тест!Сделайте свой собственный тест
Напишем свой тест. Сначала добавьте этот класс в свой основной проект приложения, чтобы нам было что протестировать:
Теперь измените
addition_isCorrect()
метод в тестовом классе, чтобы он был похож на следующий код (или просто добавьте другой метод с другим именем):Запустите его снова, и вы увидите, что он прошел. Поздравляем, вы только что создали свой первый тест! (Ну, технически я предполагаю, что это было мое, но, эй, достаточно близко. То, что мое, твое.)
Как создавать инструментальные тесты
Откройте
ExampleInstrumentedTest
файл. это должно выглядеть примерно так:Снова нажмите одну из этих зеленых кнопок.
Пока у вас подключено реальное устройство или настроен эмулятор, он должен был запустить его и запустить ваше приложение. Поздравляем, вы только что выполнили свой первый инструментальный тест!
Сделайте свой собственный тест
В инструментальных тестах для запуска тестов используется эспрессо . Это похоже на вашего собственного маленького пользователя-робота, которого вы можете протестировать. Вы можете сказать ему сделать что-то вроде нажатия кнопки или чтения свойств TextView.
Вы можете написать инструкции, как проводить тест вручную, но, поскольку мы только начинаем, давайте воспользуемся функцией автоматической записи . Все очень просто.
Сначала добавьте кнопку в свой пользовательский интерфейс, чтобы нам было с чем поработать. Я сделал это:
Затем нажмите « Выполнить»> «Записать тест эспрессо» в меню.
После его запуска нажмите кнопку в эмуляторе, а затем, чтобы закончить, выберите ОК в диалоговом окне «Запись». Он должен автоматически сгенерировать следующий тестовый код.
Большой! Вы только что создали свой первый инструментальный тест! Это было очень просто. Вам, вероятно, следует добавить утверждение, чтобы провести настоящий тест, но это довольно легко сделать и с рекордером. Посмотрите это видео, чтобы узнать больше.
Дальнейшее обучение
Я сначала смотрел видео, а потом читал документацию. Все это очень помогает. Последняя ссылка - это серия статей, в которых рассказывается о некоторых важных вещах, о которых следует подумать при выборе того, что тестировать.
источник
/app
полный путь из базы теста, но если я запускаю в Android Studio, тесты запускаются из root_ , однако, если я запускаю из командной строки Gradle (или CI), тогда это _root . (В идеале я хотел бы получить доступ к определеннымassets
папкам при любом запуске).test/resources
и поместите туда файлы, например,test.txt
и получите к ним доступ с помощьюgetClass().getClassLoader().getResource("test.txt")
. Я решил, что прямой доступ к ресурсам APK, скорее всего, плохая идея, поэтому я разберусь с этим, скопировав файлы для тестирования на этапе сборки или в процессе внешнего обновления. Остается вопрос о разных версиях Gradle, но я с этим еще не сталкивался.Изменить: начиная с версии 0.1.8 это теперь поддерживается в среде IDE . Пожалуйста, следуйте инструкциям там, вместо того, чтобы использовать инструкции ниже.
Следуя руководству пользователя подключаемого модуля Android Gradle, я смог заставить тесты работать в командной строке, выполнив следующие шаги во вновь созданном проекте (я использовал пакет com.example.myapplication по умолчанию):
Это запустило мои тесты и поместило результаты тестов в MyApplicationProject / MyApplication / build / reports / instrumentTests / connected. Я новичок в тестировании приложений для Android, но, похоже, все работает нормально.
Из среды IDE можно попробовать запустить тот же тестовый класс. Вам нужно будет
Однако это не удается (в пути к классам, используемом при запуске тестов, отсутствует выходной каталог теста). Однако я не уверен, что это сработает независимо от того, насколько я понимаю, требуется специальный тестовый запуск для Android.
источник
Я бы посоветовал использовать файл gradle.build .
Добавьте каталог src / androidTest / java для тестов (как начинает объяснять Крис )
Откройте файл gradle.build и укажите там:
Нажмите «Синхронизировать проект с файлом Gradle» (на верхней панели). Теперь вы должны увидеть папку «java» (внутри «androidTest») зеленого цвета.
Теперь вы можете создавать там любые тестовые файлы и запускать их.
источник
Я думаю, что этот пост Рекса Сент-Джона очень полезен для модульного тестирования с помощью студии Android.
(источник: rexstjohn.com )
источник
Android Studio v.2.3.3
Выделите контекст кода, который вы хотите протестировать, и используйте горячую клавишу:
CTRL
+SHIFT
+T
Используйте диалоговый интерфейс, чтобы завершить настройку.
Платформа тестирования должна отражать макет пакета вашего проекта для достижения наилучших результатов, но вы можете вручную создавать собственные тесты при условии, что у вас есть правильный каталог и настройки сборки.
источник
На данный момент (студия 0.61) достаточно поддерживать правильную структуру проекта. Нет необходимости создавать отдельный тестовый проект, как в eclipse (см. Ниже).
источник
Android Studio продолжает развиваться, поэтому приведенные выше ответы в конечном итоге больше не будут применяться. Для текущей версии Android Studio 1.2.1.1 есть хорошее руководство по тестированию по адресу:
http://evgenii.com/blog/testing-activity-in-android-studio-tutorial-part-1/
источник
Одним из основных изменений, по-видимому, является то, что в Android Studio тестовое приложение интегрировано в проект приложения.
Я не уверен, помогает ли это вашей конкретной проблеме, но я нашел руководство по проведению тестов с помощью проекта Gradle. Руководство пользователя Android Gradle
источник
Самый простой способ, который я нашел, - это упрощенный вариант в моем следующем сообщении в блоге :
Удачи вам в создании более читабельного, поддерживаемого и хорошо протестированного кода!
источник
Android Studio была своего рода движущейся мишенью, сначала это была предварительная версия для разработчиков, а сейчас находится в стадии бета-тестирования. Путь к тестовым классам в проекте со временем изменился, но независимо от того, какую версию AS вы используете, путь объявлен в вашем .iml файле. В настоящее время в версии 0.8.3 вы найдете следующее во внутреннем iml-файле:
Файл .iml сообщает вам, где разместить тестовые классы.
источник
Начиная с Android Studio 1.1, у нас есть официальная (экспериментальная) поддержка написания модульных тестов (Roboelectric также работает).
Источник: https://sites.google.com/a/android.com/tools/tech-docs/unit-testing-support
источник
Добавьте ниже lib внутри файла gradle
Создайте класс HomeActivityTest в каталоге androidTest и перед запуском теста добавьте строку flurry_api_key и sender_id в файл строковых ресурсов и измените значение для случая сбоя и успеха.
источник