recent i tryied getting started with android uiautomation testing.
The tutorial from the developer site I've worked through a few times and after having some problems and solving them now I have got a bigger issue.
I created a project, imported the two jar files and builded a java testcase scenario (the one from the tutorial.) after that I created an uitest projekt with shell command line. updated the build.xml created a jar file and pushed it onto my device.
As far as good everything worked nicely upon this point.
But tryin to run my tests with the command line:
adb -s <ANDROID_SERIAL> shell uiautomator runtest DeviceUnlocker.jar -c c.d.d.DeviceUnlocker
I only get the error:
INSTRUMENTATION_RESULT: shortMsg = java.lang.RuntimeException
INSTRUMENTATION_RESULT: longMsg=Didn't find class "cddDeviceUnlockingPseudoCodeTest on Path: /system/framework/android.test.runner.jar: /system/framework/uiautomator.jar:: /data/local/tmp/DeviceUnlocker.jarINSTRUMENTATION_CODE: 0
okay the easiest way is to only create inside eclipse a new android junit projekt.
i think this is more or less equal to uiautomator. and i think you might have the same oportunities ... correct me if i'm wrong...
uiautomator is still not running... and i also found some bugs in the uibuild.xml from android itself
<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>`
thanks for your help. for me uiautomator is no option anymore. regards
<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>
that were all steps i've done
thanks
Make sure you've compiled the java classes into android dex !
I've met the same issue when put a pure java "jar" package to /data/tmp/.
Assume your project is device-unlock
:
cd device-unlock
android create uitest-project -n device-unlock -t 1 -p .
and build
Now you'll find the dexed jar package in bin/device-unlock.jar
, open it with zip you'll see a classes.dex
.
With this jar, it should be ok to continue your test.
I had the exact same problem and made a quick haxx to fix it:
Solve it by:
This is just a workaround but it identified the root case - that the testcase class is excluded from the UiAutomator buildstep
While running the uiautomator Tests command run it in the below way
Example:
adb shell uiautomator runtest LaunchSettings.jar -c com.uia.example.my.LaunchSettings
adb shell uiautomator runtest "jar name" -c "packagename"."Classname"
This should work.
Best way to check this problem is to run this command without using -c <classpath>#<testMethod>
and check if it works. If it works check for the class name that it prints in the terminal is the one that's used with -c
adb -s shell uiautomator runtest DeviceUnlocker.jar
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.