【问题标题】:How to build an android test app with a dependency on another app using ant?如何使用ant构建一个依赖于另一个应用程序的android测试应用程序?
【发布时间】:2010-03-17 22:44:15
【问题描述】:

我有一个名为 MyApp 的模块,以及另一个名为 MyAppTests 的模块,它依赖于 MyApp。两个模块都生成 APK,一个名为 MyApp.apk,另一个名为 MyAppTests.apk。

我通常在 IntelliJ 或 Eclipse 中构建这些,但为了持续集成,我想为它们创建一个 ant 构建文件。

我使用“android 更新”为 MyApp 创建了一个构建文件,感谢 commonsware's answer 对我之前的问题的回答,我已经能够使用 ant 成功构建它。

我现在想使用 ant 构建 MyAppTests.apk。我像以前一样使用“android update”构建了构建文件,但是当我运行它时,我收到一个错误,表明它没有在 MyApp 中找到任何类。

从我之前的问题中得到一个问题,我尝试将 MyApp.apk 放入我的 MyAppTests/libs,但不幸的是,这并没有奇迹般地解决问题。

当依赖于另一个 APK 中的类时,使用 ant 构建测试应用 APK 的最佳方法是什么?

$ ant debug
Buildfile: build.xml
    [setup] Project Target: Google APIs
    [setup] Vendor: Google Inc.
    [setup] Platform Version: 1.5
    [setup] API level: 3
    [setup] WARNING: No minSdkVersion value set. Application will install on all Android versions.

dirs:
     [echo] Creating output directories if needed...

resource-src:
     [echo] Generating R.java / Manifest.java from the resources...

aidl:
     [echo] Compiling aidl files into Java classes...

compile:
    [javac] Compiling 5 source files to /Users/mike/Projects/myapp/android/MyAppTests/bin/classes
    [javac] /Users/mike/Projects/myapp/android/MyAppTests/src/com/myapp/test/GsonTest.java:3: cannot find symbol
    [javac] symbol  : class MyApplication
    [javac] location: package com.myapp
    [javac] import com.myapp.MyApplication;
    [javac]                ^

【问题讨论】:

    标签: android unit-testing ant


    【解决方案1】:

    /Users/mike/Projects/myapp/android/ 中,假设主应用程序源位于名为MyApp 的子目录中,运行:
    android create test-project -p MyAppTests -m ../MyApp -n MyAppTests

    这将生成一个测试文件夹结构和适当的 Ant 构建文件,因此您可以执行以下操作:
    cd MyAppTests
    ant run-tests

    【讨论】:

    【解决方案2】:

    我遇到了这个确切的问题。

    对我来说,解决方案是将以下内容添加到我的 ant.properties。

    tested.project.dir=../MyApp
    

    Christopher 的回答还会为您生成一个 ant.properties 文件。如果您在 Eclipse 中还没有一个功能齐全的项目,他的解决方案会更好。

    对我来说,我的项目已经在 Eclipse 中构建和运行,但不会在 ant 中构建。为此,我只需要在我的 ant.properties 中进行上述操作。 Eclipse 和其他 IDE 不会为您生成正确的 ant.properties,因此 Christopher 的答案会起作用,因为它会生成 ant.properties。

    【讨论】:

      猜你喜欢
      • 2011-12-05
      • 1970-01-01
      • 1970-01-01
      • 2016-06-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-10
      相关资源
      最近更新 更多