8

Gradle (Android Studio) でビルドするときに、Robolectric と Espresso を (一緒に) 正常に動作させた人はいますか?

主に Peter Friese の投稿http://www.peterfriese.de/android-testing-with-robolectric/のおかげで、Robolectric が Android Studio で動作するようになりましたが、instrumentRunner/instrumentTest の衝突のために Espresso を統合する方法がわかりません。 .

理想的には、次のようなディレクトリ構造が必要です。

 |--src
    └── main (application source - exists)
    └── test (Robolectric unit tests go here - exists)
    └── testEspresso [*new*] (espresso tests go here)

私のGradle + Androidの知識はそれほど広くありません.Gradle + Androidの現在の状態を考えると、これが本当に実現可能かどうかはわかりません(時間、複雑さ、脆弱性のレベルは極端ではありません). 、そうする方法。また、関連性がある場合に備えて、2 つの異なるビルド フレーバーがあります。

4

2 に答える 2

8

Robolectric と Espresso が調和して動作する好例については、Robolectric チームによって作成されたこのサンプル プロジェクトをチェックしてください。

https://github.com/robolectric/deckard-gradle

于 2014-03-31T19:54:49.270 に答える
2

「ハック、Gradle プラグイン、IDE プラグイン、または IML 編集」を含まない別のオプションはhttp://blog.blundellapps.co.uk/android-gradle-app-with-robolectric-junit-tests/です。Jake Worton はこのアプローチを推奨しました。これにより、Robolectric テストは、メイン プロジェクトとは別の別の Java モジュールになります。Espresso のコードは、メイン プロジェクトと共に使用されます。

JW の double-espresso ( https://github.com/JakeWharton/double-espresso ) を使用すると、Espresso とそれに伴う依存関係管理の狂気を簡単に含めることができます。

@plackemacherが言及したソリューションであるdeckard-gradleはまだオプションであり、維持されていますが、IDEを操作するにはハッキング/手術が必要です。

更新: Robolectric と Gradle (Gradle に関連) に関するこちらのディスカッションを参照してください: https://groups.google.com/forum/#!topic/robolectric/xsOpEwtdTi4/discussion

更新:私はそれを使用していませんが、これがチケットのようです。https://github.com/JakeWharton/double-espresso .


とりあえず、適切な testRunner とテスト ディレクトリ セットを持つ別の Espresso ブランチ (git) を作成することにしました。恐ろしくエレガントな解決策ではありません...すべてを最新の状態に保つには注意が必要ですが、今のところ機能しています!

誰かがより良い解決策を見つけた場合、答えは間違いなく変わります。

于 2013-12-25T21:56:44.560 に答える