親愛なる素晴らしいコミュニティ、
私は、自分の Android アプリケーション用にいくつかの適切な TDD/BDD テスト インフラストラクチャを作成することに決めました。リモートでAndroid-y用のエミュレーターを起動する必要がないように、別のテストプロジェクトにRoboelectricを組み込むことを検討しています。自分の (Eclipse ADT 3.8) 環境に何をインポートしたかを確認するには、RoboElectricSample プロジェクトが見つかりました。しかし、私は障害にぶつかりました...すべてが賢明にコンパイルされており、おなじみ/bin
の/target
maven-eclipseスタンドオフを回避して、ここで十分に賛成できない答えを出しました。
ただし、サンプル プロジェクトのテスト (87 個すべて) のうち、合格したのは 7 個だけで、残りは失敗しました。
Caused by: java.lang.ClassNotFoundException: com.pivotallabs.R
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:171)
at org.robolectric.AndroidManifest.getRClass(AndroidManifest.java:100)
現在、ビルドの出力場所は、ビルドのsrc/test/java
出力場所 と相対的です。target/test-classes
src/main/java
target/classes
完全を期すために、プロジェクトの構造を次に示します。
この Q&A 交換は、私が間違ったツリーを吠えている可能性があることを示唆しているようですが、それは 1 年以上前のことであり、m2e-android プラグインは長い道のりを歩んできました。最後に、この質問は私の問題を正確に反映しているようですが、残念ながら解決策はありません。
ビルド パスを修正して/gen/r
ファイルを Maven の同等のもので認識できるようにするために提供できるヘルプは、generated-sources/r
最も高く評価されています。アプリを Roboelectric に切り替える前に、サンプル アプリを起動して実行したいと考えています。