2012-05-18 51 views
2

有3个项目:我如何引用库项目在Android测试项目(Ant编译)

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

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

然而,Robotium测试项目不能引用库项目:

  • 如果唯一标准“的Android更新测试项目”时,则测试项目将无法编译,因为它间接引用库项目

    [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中,那么测试项目可以编译,但是在运行时它会抱怨没有找到主活动的类(NoClassDefFoundError)

回答

0

不幸的是,这个失败了,但测试可以由Eclipse构建和运行。你应该考虑的唯一的事情是检查Java构建路径的robotium库 - >在线订单和出口在您的测试项目

enter image description here

,并检查你的库项目是在测试项目的属性

enter image description here

引用如果你想测试库项目分开您可以按照android: testing library projects中所述的说明操作。

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

+0

感谢您的回答。可能我必须现在手动运行测试。如果没有人工交互,在Jenkins上运行它将会很好。 –