Тестирование Android UiAutomator

Я создал простое действие, в котором у меня есть 2 кнопки для отправки и отмены. Я просто хочу протестировать этот проект с помощью тестирования UI Automator. Итак, я создаю тестовый проект Android и создаю класс. Я расширяю этот тестовый класс UiAutomatorTestCase. Я также добавил uiautomator.jar, android.jar, а также библиотеку junit3. Но когда я запускаю тестовый пример, я получаю сообщение об ошибке

Ошибка TestSuiteConstruction и исключение java.lang.RuntimeException.

Однако я добавляю конструктор, но поскольку он не принимает никаких параметров, я не могу добавить никаких параметров. Вот мой тестовый код. Пожалуйста, устраните эту ошибку как можно скорее. Подскажите, пожалуйста, что-нибудь, что я не добавил в свой проект?

package com.example.automatorapp.test;

import android.test.suitebuilder.TestSuiteBuilder;
import android.util.Log;

import com.android.uiautomator.core.UiObjectNotFoundException;
import com.android.uiautomator.testrunner.UiAutomatorTestCase;
import com.example.automatorapp.MainActivity;

public class testDemo1 extends UiAutomatorTestCase
{
    public testDemo1()
    {

    }

    public void testdemo() throws UiObjectNotFoundException
    {   
        getUiDevice().pressHome();
        Log.e("how r u","hello");
    }
}

person Aditya    schedule 28.03.2013    source источник
comment
пожалуйста, ответьте кому-то ?? это срочно !!!!   -  person Aditya    schedule 28.03.2013
comment
возможный дубликат ошибки UIAutomator junit testsuite   -  person THelper    schedule 28.03.2013


Ответы (1)


Попробуйте изменить имя своего класса, чтобы он не начинался с слова test, и удалите конструктор. По соглашению имя класса начинается с заглавной буквы, ваше - с строчной буквы «т». Кроме того, опять же по соглашению, тестовые классы JUnit3 помещают в конце слово «Test». http://junit.sourceforge.net/junit3.8.1/javadoc/junit/framework/TestCase.html Итак, в вашем примере имя класса testdemo1 будет чем-то вроде строки Demo1Test (помните, что имя файла должно совпадать с именем класса).

Однако, к моему удивлению, на моей машине была запущена слегка измененная версия вашего кода. Вот код, который работал нормально.

package com.example.automatorapp.test;

import android.util.Log;
import com.android.uiautomator.core.UiObjectNotFoundException;
import com.android.uiautomator.testrunner.UiAutomatorTestCase;

public class testDemo1 extends UiAutomatorTestCase
{
    public testDemo1()
    {
    }
    public void testdemo() throws UiObjectNotFoundException
    {
        getUiDevice().pressHome();
        Log.e("how r u","hello");
    }
}

У меня тоже есть сообщение журнала в журнале Android.

E/how r u (24667): hello

Следовательно, у вас могут возникнуть проблемы с настройкой вашего проекта или средой сборки. Насколько мне известно, этот проект (для тестирования) не должен зависеть от кода или проекта приложения, которое вы хотите протестировать. Однако у вас есть импорт в приложение, которое вы хотите протестировать.

import com.example.automatorapp.MainActivity;

Поскольку вы уже разместили довольно много вопросов, связанных с UI Automator, возможно, вы могли бы подвести итоги своего прогресса. Например, доводилось ли вам когда-нибудь успешно запускать тест UI Automator?

PS: Я надеялся увидеть отзывы на ваши предыдущие вопросы. Без вашего отзыва трудно понять, в каком направлении вы идете и были ли ответы актуальными или полезными для вас.

person JulianHarty    schedule 28.03.2013
comment
привет, спасибо за ваш ценный комментарий ... на самом деле не могли бы вы сказать мне, должен ли я использовать терминал также для запуска этого теста или я могу запустить его напрямую, написав код в ide. Как и в некоторых тестовых случаях, я видел, что есть build.xml Как я могу его создать? И еще один вопрос, нужно ли мне прикрепить javadoc также для uiautomator.jar? - person Aditya; 28.03.2013
comment
эй, я думаю, что мне не хватает некоторых файлов jar ... не могли бы вы рассказать мне шаг за шагом, как я могу сделать свой TestCase в UiAutomator ... значит, я сделал такие шаги, как .. новый- ›AndroidTestPorject.После этого я перехожу к свойствам и импортирую uiautomator.jar, androi.jar, а также добавляю библиотеку JUNit3. Это все, что я сделал с моей стороны. Мне нужно сделать что-то еще? И 1 вещь, которую я не могу найти, javadoc uiautomator.jar.plzz поможет мне как можно скорее? - person Aditya; 28.03.2013
comment
Puneet, вместо использования new- ›AndroidTestProject я рекомендую вам следовать примеру на сайте разработчиков Android здесь developer.android.com/tools/testing/testing_ui.html#creating внимательно прочтите его, например тесты помещаются в папку / src. Затем продолжайте читать и экспериментировать и скопируйте их образец теста developer.android.com/tools/. testing / testing_ui.html # sample, затем в командной строке повторите различные команды, показанные в примере. Вы можете работать с кодом в среде IDE, но большая часть работы выполняется в командной строке. Может быть, попросить помощи у коллеги, который тоже знает Android? Удачи. - person JulianHarty; 29.03.2013
comment
Привет, Джулиан, спасибо за вашу помощь .. но на самом деле обязательно ли использовать командную строку для тестирования uiautomator? А для создания тестового набора я должен поместить оба класса, который должен быть тестовым, и тестовый набор в один и тот же источник? - person Aditya; 29.03.2013
comment
Нет ничего обязательного, потому что хороший техник может найти способы реализовать альтернативные подходы, например возможно написать какое-нибудь программное обеспечение для интеграции UI Automator в IDE. Однако на данный момент практический ответ для вас - использовать инструменты командной строки и научиться грамотно ими пользоваться. Тогда вы сможете разработать более подходящие подходы, которые лучше соответствуют вашим потребностям. UI Automator, в отличие от Android Instrumentation, живет отдельно от кода, который вы хотите протестировать. Рассматривайте свой проект UI Automator как независимый, отдельный проект; вот как работает пример Android. - person JulianHarty; 29.03.2013
comment
эй, я пробовал все шаги, которые упоминаются на сайте developers.android.com .. но все еще есть ошибки .. я думаю, что когда я создаю тестовый пример, возникает какая-то проблема, что-то у меня не хватает, что я должен добавить ... могу ли ты пожалуйста, расскажите мне вкратце о некоторых шагах, как сделать testcase? и что мне нужно делать из командной строки ?? заранее спасибо за ваш ответ .. - person Aditya; 29.03.2013
comment
Пунит, я не думаю, что для меня практично или продуктивно писать шаги, как создать тестовый пример и заставить его работать на вашей машине, как часть ответов на вопросы о переполнении стека. Документация Android охватывает основные шаги и включает команды, которые необходимо использовать из командной строки. Я отвечал на ваши различные основные вопросы и каждый раз тестировал и часто предоставлял выходные данные команд командной строки и т. Д. Примечание. Пример Android является автономным, без тестового проекта или целевого приложения. Возможно, вы сможете найти кого-нибудь из местных, кто будет работать вместе с вами и помочь вам диагностировать, что идет не так? - person JulianHarty; 30.03.2013
comment
да, вы правы..оки, я попробую со своей стороны..спасибо за вашу помощь !! - person Aditya; 30.03.2013
comment
Всего наилучшего в ваших исследованиях и открытиях. Я надеюсь, что вы сможете решить проблемы в своей настройке, а затем успешно перейти к использованию UI Automator. Пожалуйста, дайте мне знать, когда вы будете готовы протестировать различные ответы и более активно использовать UI Automator. - person JulianHarty; 30.03.2013
comment
эй, я очень благодарен вам за вашу помощь .. я успешно запустил случай uiautomator .. теперь на самом деле мне нужно использовать приложение adapxt для тестирования .. в этом я должен ввести 1 слово и из окна предложений я должен сначала выбрать слово.У вас есть идеи, как мы можем обрабатывать поле предложений. Как выбрать слово из окна предложений? - person Aditya; 31.03.2013
comment
Пунит, я рад, что вам удалось успешно запустить тестовый пример UI Automator. Могу я попросить вас сделать несколько вещей прямо сейчас: а) просмотреть все свои вопросы на StackOverflow и привести их в порядок. Например, закройте похожие. В будущем я предлагаю вам ограничить каждый вопрос одним вопросом, а не добавлять к ним дополнительные вопросы, например. Я видел, как вы сообщали о похожих проблемах 3 или 4 раза, например. для исключений и для «отсутствующих документов javadoc». б) принять все мои ответы, если они ответили на этот вопрос. c) напишите новый вопрос с четким примером того, чего вы хотите сейчас достичь, и любым соответствующим кодом. - person JulianHarty; 01.04.2013
comment
эй, конечно, я сделаю все, что вы говорите .. на самом деле я тестирую клавиатуру Adaptxt в Android. Можете ли вы сказать мне, как я могу сделать долгое нажатие на любую клавишу adapxt в эмуляторе? - person Aditya; 01.04.2013