最近我尝试开始使用android uiautomation测试。
来自开发者网站的教程我已经工作了几次,在遇到一些问题并解决它们之后我现在遇到了更大的问题。
我创建了一个项目,导入了两个jar文件并构建了一个java测试用例场景(教程中的那个)。 之后我用shell命令行创建了一个uitest projekt。更新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/DeviceUnlocker.jarINSTRUMENTATION_CODE:0
答案 0 :(得分:1)
好吧,最简单的方法是只在eclipse中创建一个新的android junit projekt。
我认为这或多或少与uiautomator相同。 我想你可能会有同样的机会......如果我错了,请纠正我......
uiautomator仍然没有运行...而且我还在android本身的uibuild.xml中发现了一些错误
<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 :(得分:0)
<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>
这就是我所做的所有步骤
感谢
答案 2 :(得分:0)
确保已将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
找到dexed jar包,用zip打开它会看到classes.dex
。
使用这个罐子,可以继续测试。
答案 3 :(得分:0)
我遇到了完全相同的问题并快速解决了问题:
通过以下方式解决:
这只是一种解决方法,但它确定了根案例 - 测试用例类被排除在UiAutomator buildstep之外
答案 4 :(得分:0)
运行uiautomator Tests命令时,以下面的方式运行它
示例:
adb shell uiautomator runtest LaunchSettings.jar -c com.uia.example.my.LaunchSettings
adb shell uiautomator runtest "jar name" -c "packagename"."Classname"
这应该有用。
答案 5 :(得分:0)
检查此问题的最佳方法是在不使用-c <classpath>#<testMethod>
的情况下运行此命令,并检查它是否有效。
如果有效,请检查它在终端中打印的类名是与-c
adb -s shell uiautomator runtest DeviceUnlocker.jar