【问题标题】:How can I reference library project in an Android Test-Project (ant build)如何在 Android 测试项目(ant build)中引用库项目
【发布时间】:2012-05-18 00:48:54
【问题描述】:

有3个项目:

  1. 主要项目
  2. main 引用的库项目 (ActionBarSherlock)
  3. robotium 测试项目。

这三个项目由 Jenkins 签出到工作区中的 3 个文件夹中。

但是,Robotium 测试项目无法引用库项目:

  • 如果只使用标准的“android update test-project”,那么测试项目将无法编译,因为它间接引用了库项目

    [javac] /home/jenkins_test/test/src/com/**********/test/core/**********TestCase.java:15: cannot access                com.actionbarsherlock.app.SherlockFragmentActivity
    [javac] class file for com.actionbarsherlock.app.SherlockFragmentActivity not found
    [javac]             ActivityInstrumentationTestCase2<Home> {
    [javac]                                             ^
    [javac] /home/jenkins_test/test/src/com/**********/test/core/**********TestCase.java:55: cannot find symbol
    [javac] symbol  : constructor Solo(android.app.Instrumentation,com.**********.activity.Home)
    [javac] location: class com.jayway.android.robotium.solo.Solo
    [javac]             solo = new Solo(getInstrumentation(), getActivity());
    [javac]                    ^
    
  • “android 更新测试项目”不支持 --library 标志

  • 如果将 android.library.reference.1=../ActionBarSherlock 添加到测试项目的 project.properties 中,则测试项目可以编译,但在运行时它会抱怨找不到主 Activity 的类( NoClassDefFoundError)

【问题讨论】:

    标签: android testing ant jenkins robotium


    【解决方案1】:

    不幸的是,这在 ant 中失败了,但测试可以由 Eclipse 构建和运行。您应该考虑的唯一一件事是在您的测试项目中检查 Java Build Path -> Order and Export 中的 robotium 库

    并检查您的库项目是否在测试项目的属性中引用

    如果您想单独测试库项目,您可以按照android: testing library projects 中描述的说明进行操作。

    我知道这可能不是解决方案,因为您使用的是 Jenkins,但至少它会让您从坚实的基础开始。

    【讨论】:

    • 感谢您的回答。可能我现在必须手动运行测试。不用手动交互就可以在 Jenkins 上运行它会很好。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-16
    • 2012-01-25
    相关资源
    最近更新 更多