Коллеги, возникла проблема при запуске тестов с помощью Роботиума и apk файла. При вызове каждого тест-метода приложение запускается заново. Например, мне надо залогиниться и вторым тест-методом выполнить действия. При вызове второго метода приложение перезапустится и предыдущий логин конечно же уйдет в небытие.
// Open Start and try with right pass
public void testA() {
solo.waitForText("START");
solo.clickOnText("START");
solo.waitForText("Enter user name and password");
solo.clearEditText(0);
solo.enterText(0, logpass);
solo.clickOnEditText(1);
solo.enterText(1, logpass);
solo.clickOnText("Show password");
solo.clickOnButton("OK");
}
public void testB() {
solo.waitForText("HOME");
assertTrue(solo.searchText("CHAT"));
solo.clickOnText("CHAT");
}
@Override
public void tearDown() {
solo.finishOpenedActivities();
Никогда над этим не задумывался. Обычно каждый тест должен быть максимально независимым от работы предыдущего. Поколдовал немного, но решения так и не нашел. Добился того, чтобы приложение не закрывалось после выполнения первого теста, но второй тест не может запуститься так как обьект solo становится null. А определяя его мы получаем ошибку, так как находимся уже не на Init экране. Я пообщаюсь с разработчиками на эту тему, и сам еще покопаюсь. А вы пока сделайте тесты максимально независимыми друг от друга. Рефакторинг, DSL и ScreenObject вам в помощь. Скоро будет статья на портале об этом.
Да, на скорость влияет. Я как найду решение вопроса - сообщу. Посмотрите видео и примеры кода с конференций, которыми я делился. Поможет построить объектную модель, чтобы проще было писать тесты
У меня есть apk файл. Я его поставил на планшет (не рутнутый). Еклипс , сдк и все другие детали под автомейшн на роботиуме я настроил.
Как создать правильно проэкт что б я смог тестировать этот мой апк файл на своем планшете а не на емуляторе ?
Сначала как то нужно указать етот апк файл, потом делать тест проект или как ?
Я нашел Ваш пример с тестированием Нотпада на емуляторе, но у меня после run as Android JUnit запускаеться емулятор и в logcat выдает ошибку, типа class com.jayway тра тра solo couldn't be found
Кароче удалил все проекти в еклипси, хочу с нуля разобраться как свои апликухи тестировать. А еще доступа к сорсам апк-а файла нету, он просто установлен на планшете, и я знаю имя пакета его.
Решением запуска тестов может быть наследование от SingelaunchActivityTestCase, я сегодня провестирую это и скажу.
Я нашел Ваш пример с тестированием Нотпада на емуляторе, но у меня после run as Android JUnit запускаеться емулятор и в logcat выдает ошибку, типа class com.jayway тра тра solo couldn't be found
Конечно, потому что девайс у Вас не подключен или не включен дебаг режим. А путь к библиотеке Robotium зашит мой, вам нужно свой подставить в Build Settings.
Смотрите, у вас написано "Указываем имя и выбираем Create project from existing sample"... "Выбираем API, например 7. На следующем окне выбираем приложение NotePad и нажимаем Finish.", а мне нужно вытащить с планшета саму программу, и когда я выбираю этот пункт который Вы написали, у меня появляеться список версий Андроид емуляторов я так понял, я выбираю тот же который и мой планште АРІ 12 и там список прог самого емулятора по ходу, а как подтянуть с Планшета подключенного через кабель (деббагинг мод включен) ???? Как быть в етом случае, не подскажете ?
С запуском приложений на планшете все разобрался, все ок работает. Но как именно писать тесты под apk приложение которое установленное уже в планшете ...
В тестируемом приложении есть вызов стандартной камеры. К сожалению роботиум не позволит сделать снимок камерой. Как быть в этом случае? Или какой другой инструмент использовать?
Реально ли добавить кнопку "сделать фото" на скрин? Роботим сможет нажать на нее. Если кнопка какая-то кастомная, то нужно делать вызов API по снятию фото. Готовых примеров у меня нет, но в теории это возможно