如何在Android Test-Project(ant build)中引用库项目

时间:2012-05-18 00:48:55

标签: android testing ant jenkins robotium

有3个项目:

  1. 主要项目
  2. 由main
  3. 引用的库项目(ActionBarSherlock)
  4. 机器人测试项目。
  5. 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 update test-project”没有--library flag支持

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

1 个答案:

答案 0 :(得分:0)

不幸的是,这会失败,但是测试可以由Eclipse构建和运行。您唯一需要考虑的是在 Java Build Path - &gt;中检查robotium库。您的测试项目中的订单和导出

enter image description here

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

enter image description here

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

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