Ошибка выполнения теста 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/DejUnlock

INSTRUMENTATION_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 больше не вариант. С уважением

  1. новый JavaProjekt (импорт JUnit android.jar uiautomator.jar
  2. создавать пакеты cdd
  3. Скопировать устройство TestCase Unlocking pseudoTestCase в Projekt
  4. запустить cmd 4.1. "установить ANDROID_HOME=" в расположение SDK 4.2. \tools\ android create uitestprojekt -n имя -t "android-16" -p projPath
  5. отредактируйте 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>
  1. беги как antbuild
  2. cmd -> cd ANDROID_HOME-> cd platform-tools
  3. adb push /jar/uiautomator.jar data / local / tmp
  4. тестирование 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

У меня была точно такая же проблема, и я решил быстро ее исправить:

Решите это:

  1. перейдите к вашему проекту UiautomationTest и скопируйте файл (ы) из папки bin /. В моем случае я скопировал всю структуру папок com/poc/MyTest.class
  2. перейдите в проект App-Under-Test и в папку bin / за данными класса. В моем случае com/poc/MyTest.class объединяется с существующими классами в com /
  3. Перестройте проект UiAutomation с помощью "ant build"
  4. развернуть и теперь вы можете запустить его!

Это просто обходной путь, но он определил основной случай - класс 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,

С этим сосудом можно продолжить тест.

Другие вопросы по тегам