Ant(build.xml)相当于Eclipse的Build Path->Export?



我有一个使用Espresso的Android测试项目,我正在尝试用Ant构建。我可以很好地构建测试应用程序。把它安装到设备上。问题是,每当我尝试使用

运行测试时

adb shell am instrumentcom.test.package/com.google.android.apps.common.testing.testrunner.GoogleInstrumentationTestRunner

我在我的命令提示符中得到这个:

INSTRUMENTATION_RESULT: shortMsg=java.lang.ClassNotFoundException
INSTRUMENTATION_RESULT: longMsg=java.lang.ClassNotFoundException: Didn't find class "com.google.android.apps.common.testing.testrunner.GoogleInstrumentationTestRunner" on path: /system/framework/com.google.android.maps.jar:/system/framework/android.test.runner.jar:/data/app/test.apk:/data/app/myApp.apk
INSTRUMENTATION_CODE: 0

在日志中:

E/AndroidRuntime(27558): java.lang.RuntimeException: able to实例化仪器ComponentInfo {com.avai.app.test.automate/com.google.android.apps.common.testing.testrunner.GoogleInstrumentationTestRunner}:java.lang.ClassNotFoundException:没有找到类"com.google.android.apps.common.testing.testrunner.GoogleInstrumentationTestRunner"路径:/系统/框架/com.google.android.maps.jar:/系统/框架/android.test.runner.jar:/数据/应用/test.apk:/数据/应用/myApp.apk

如果我选中Configure Build Path->Order and Export下Espresso罐旁边的框,我可以在Eclipse中运行测试。我注意到,如果不选中此框,我将得到与上面完全相同的错误信息。

我需要知道的是如何在这里用Ant模拟Eclipse的行为?

下面是我的build.xml文件中的一个片段(主要是从Eclipse中的Export->Ant build files生成的):

<path id="Android 4.4.2.libraryclasspath"> ... (lots of jars) ... </path> <path id="AutomationTests.classpath"> ... (more jars) ... </path> <path id="AutomationTests.classpath"> <pathelement location="bin/classes"/> <path refid="Android 4.4.2.libraryclasspath"/> <path refid="Android Private Libraries.libraryclasspath"/> <path refid="Android Dependencies.libraryclasspath"/> <pathelement location="../../android-test-kit/bin/espresso-standalone/espresso-1.1-bundled.jar"/> </path> <javac encoding="${java.encoding}" source="${java.source}" target="${java.target}" debug="true" extdirs="" includeantruntime="false" destdir="${out.classes.absolute.dir}" bootclasspathref="project.target.class.path" classpathref="project.javac.classpath"> ...(stuff) ... </javac>

您看到的错误是由于第三方jar没有打包在APK中引起的。android ant构建的默认行为是,只有在应用程序项目/lib文件夹中找到的jar才被打包到apk中。把espresso-1.1-bundle .jar拷贝到app项目的/libs文件夹中,就可以了。

另一件需要考虑的事情—您最好使用Android工具生成build.xml,如下所述:http://developer.android.com/tools/projects/projects-cmdline.html#UpdatingAProject

相关内容

  • 没有找到相关文章

最新更新