2012-05-18 88 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上運行它將會很好。 –