Ошибка выполнения теста Android uiautomator не нашел класс
Недавно я попробовал начать с тестирования Android UIAutomation.
Учебник с сайта разработчика, с которым я работал несколько раз, и после того, как у меня возникли некоторые проблемы и теперь я решил их, у меня возникла еще большая проблема.
Я создал проект, импортировал два jar-файла и создал сценарий java testcase (сценарий из учебника), после чего я создал самый удобный проект с командной строкой оболочки. обновил build.xml создал jar-файл и поместил его на мое устройство.
Насколько хорошо все работало хорошо в этом пункте.
Но попробуй запустить мои тесты из командной строки:
adb -s <ANDROID_SERIAL> shell uiautomator runtest DeviceUnlocker.jar -c c.d.d.DeviceUnlocker
Я получаю только ошибку:
INSTRUMENTATION_RESULT: shortMsg = java.lang.RuntimeException
INSTRUMENTATION_RESULT: longMsg = Не найден класс "cddDeviceUnlockingPseudoCodeTest по пути: /system/framework/android.test.runner.jar: /system/framework/uiautomator.jar:: /data/local/tmp/DejUnlockINSTRUMENTATION_CODE: 0
6 ответов
Ладно, самый простой способ - создать внутри затмения новый проект Android Junit.
я думаю, что это более или менее равно uiautomator. и я думаю, что у вас могут быть такие же возможности... поправьте меня, если я ошибаюсь...
uiautomator все еще не работает... и я также нашел некоторые ошибки в uibuild.xml от самого Android
<target name="test" description="Runs tests">
<!-- todo: fix this -->
<fail message="Launching tests from Ant not supported yet" />
<exec executable="${adb}" failonerror="true">
<arg line="${adb.device.arg}" />
<arg value="shell" />
<arg value="uiautomator" />
<arg value="runtest" />
<arg value="${out.filename}" />
<arg value="-e" />
<arg value="class" />
<arg value="com.android.uiautomator.samples.skeleton.DemoTestCase" />
</exec>
</target>`
Спасибо за вашу помощь. для меня uiautomator больше не вариант. С уважением
- новый JavaProjekt (импорт JUnit android.jar uiautomator.jar
- создавать пакеты cdd
- Скопировать устройство TestCase Unlocking pseudoTestCase в Projekt
- запустить cmd 4.1. "установить ANDROID_HOME=" в расположение SDK 4.2. \tools\ android create uitestprojekt -n имя -t "android-16" -p projPath
- отредактируйте build.xml, который был создан из команды create: добавлен код:
<delete dir="jar"/>
<mkdir dir="jar" />
<javac destdir="bin" encoding="UTF-8" debug="on" target="1.6" includeantruntime="false">
<src path="src" />
</javac>
<jar destfile="jar/uiautomator.jar">
<fileset dir="bin" />
</jar>
- беги как antbuild
- cmd -> cd ANDROID_HOME-> cd platform-tools
- adb push /jar/uiautomator.jar data / local / tmp
- тестирование uiautomator оболочки adb -s DeviceUnlocker.jar -c cddDeviceUnlocker
это были все шаги, которые я сделал
Спасибо
Запустив команду uiautomator Tests, запустите ее следующим образом
Пример:
adb shell uiautomator runtest LaunchSettings.jar -c com.uia.example.my.LaunchSettings
adb shell uiautomator runtest "jar name" -c "packagename"."Classname"
Это должно работать.
Лучший способ проверить эту проблему - запустить эту команду без использования -c <classpath>#<testMethod>
и проверьте, работает ли он. Если это работает, проверьте, что имя класса, которое это печатает в терминале, является тем, которое используется с -c
adb -s shell uiautomator runtest DeviceUnlocker.jar
У меня была точно такая же проблема, и я решил быстро ее исправить:
Решите это:
- перейдите к вашему проекту UiautomationTest и скопируйте файл (ы) из папки bin /. В моем случае я скопировал всю структуру папок com/poc/MyTest.class
- перейдите в проект App-Under-Test и в папку bin / за данными класса. В моем случае com/poc/MyTest.class объединяется с существующими классами в com /
- Перестройте проект UiAutomation с помощью "ant build"
- развернуть и теперь вы можете запустить его!
Это просто обходной путь, но он определил основной случай - класс testcase исключен из этапа сборки UiAutomator.
Убедитесь, что вы скомпилировали классы Java в Android Dex!
Я встречал ту же проблему, когда помещал чистый java-пакет "jar" в /data/tmp/.
Предположим, ваш проект device-unlock
:
cd device-unlock
android create uitest-project -n device-unlock -t 1 -p .
and build
Теперь вы найдете пакет с банкой bin/device-unlock.jar
откройте его с помощью почтового индекса вы увидите classes.dex
,
С этим сосудом можно продолжить тест.