2

3 つのプロジェクトがあります。

  1. 主なプロジェクト
  2. main が参照するライブラリ プロジェクト (ActionBarSherlock)
  3. ロボティウム テスト プロジェクト。

これら 3 つのプロジェクトは、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 フラグのサポートがありません

  • android.library.reference.1=../ActionBarSherlock がテスト プロジェクトの project.properties に追加されている場合、テスト プロジェクトはコンパイルできますが、実行時にメイン アクティビティのクラスが見つからない (NoClassDefFoundError) というメッセージが表示されます。

4

1 に答える 1

0

残念ながら、これはantで失敗しますが、Eclipseでテストをビルドして実行できます。考慮すべき唯一のことは、Javaビルドパス->テストプロジェクトの注文とエクスポートでrobotiumライブラリをチェックすることです。

ここに画像の説明を入力してください

また、ライブラリプロジェクトがテストプロジェクトのプロパティで参照されていないことを確認してください

ここに画像の説明を入力してください

ライブラリプロジェクトを個別にテストする場合は、 Androidで説明されている手順に従ってください:ライブラリプロジェクトのテスト。

Jenkinsを使用しているため、これが解決策ではない可能性があることはわかっていますが、少なくとも、堅実な地面から始めることができます。

于 2012-05-18T05:48:18.857 に答える