問題タブ [robolectric-gradle-plugin]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
1028 参照

android - Android Studio Robolectric リソース フォルダー

アプリ プロジェクトと依存関係の Android ライブラリ プロジェクトで構成される Android スタジオにワークスペースがあります。

アプリ プロジェクト リソースと依存関係ライブラリ プロジェクト リソースの両方から文字列を読み込むクラスをテストするアプリ プロジェクトの単体テストがあります。

Roboletric で単体テストを実行すると、テストされたクラスがライブラリ プロジェクト リソースから文字列を読み込もうとすると、リソースが見つからないという例外が発生します。

この問題を解決するにはどうすればよいですか? Robolectric が使用するアプリと依存ライブラリ リソース ディレクトリの両方を指定するにはどうすればよいですか?

0 投票する
2 に答える
2205 参照

android - Google API を使用した Robolectric - AnnotationFormatError

Google API ターゲットに対してコンパイルされたプロジェクトで動作するように robolectric をセットアップしようとしましたが、動作しません。

私はさまざまなアプローチを試し、deckard-gradleを使用して問題を切り分けました:

デッカード プロジェクトをダウンロードすると、すべて正常に動作し、サンプル テストが正常に実行されます。ただし、gradle ファイルの compileSdk 設定を Google Inc.:Google APIs:19 に変更すると、テストの実行時に次の AnnotationFormatError が発生します。

ここに私のセットアップからのいくつかの関連するスニペットがあります:

build.gradle

私のテストクラス:

また、 robolectricの指示に従って、マップとサポート ライブラリをローカルの Maven リポジトリにインストールしました。

私のセットアップで何が間違っているのでしょうか?

0 投票する
0 に答える
436 参照

java - Robolectric、gradle、およびビルド タイプの問題

ロボエレクトリックとグラドルに関する投稿がたくさんあることは知っていますが、プロジェクト用に設定できませんでした。

状況から始めましょう。

私のプロジェクトには、それぞれに異なるパッケージ名を使用する 3 つのビルドタイプがあります。マニフェストでパッケージ名を使用する必要がある SDK を使用しているため、これを解決するためにマニフェストでキーを使用し、各 buildType でこれを使用します

manifestPlaceholders = [_MY_PACKAGENAME_: getName()]

そのため、グラドルのガイドで言われているように roboelectirc を構成しましたが、動作させることができません。プラグイン Android Unit Test などのさまざまなことを試してみましたが、すべてのソリューションでさまざまなエラーが発生しています。

お気に入りjava.lang.NoSuchMethodError cannot be cast to java.lang.RuntimeException

誰でもこれで私を助けることができますか?

テスト例コード:

そして、これが出力です

0 投票する
2 に答える
1193 参照

android - 単一のテストを実行する Robolectric-Gradle プラグイン

Robolectric-Gradle プラグインを使用して単一のテストを実行することは可能ですか?

私はこれで試しました:

しかし、それは機能していません。

0 投票する
3 に答える
3239 参照

android - ClassCastException: NoClassDefFoundError を RuntimeException にキャストできません

コードベースを Gradle 2.2 および Android Studio 1.0 にアップグレードする作業を行っています。現在、Robolectric 2.4 を動作させようとしていますが、単体テストを実行しようとすると奇妙な問題が発生します。この問題は、gradle clean;の後にのみ発生します。テスト スイートを複数回実行すると、合格するテストが生成されます (予想どおり)。クリーン後にテストを実行すると、次のエラーが発生します。

私はこの呼び出しにエラーをさかのぼりました:

Robolectric gradle プラグイン ( org.robolectric:robolectric-gradle-plugin:0.14.0) または JC および K Android 単体テストプラグイン ( ) のいずれを使用しても、このエラーが発生しますcom.github.jcandksolutions.gradle:android-unit-test:2.1.1

この問題は Robolectric Github で参照されていますが、まだ対処されていないようです: https://github.com/robolectric/robolectric/issues/1385

この問題は、Android Studio ユニット テスト プラグインの「トラブルシューティング」でも参照されています: https://github.com/evant/android-studio-unit-test-plugin

現在のサンプル コードはこちら: https://github.com/KioKrofovitch/robolectric-upgrade-test

Robolectric サンプルで api-android-16 プロジェクトを実行してもこの問題は発生しませんでしたが、api-android-19 および api-android-21 プロジェクトは他の理由で失敗します。彼らがこの失敗をしないように、彼らが何をしているのか私にはわかりません。 https://github.com/robolectric/robolectric-samples

誰かがこれに対する回避策を見つけましたか? テストを 2 回実行することは、Jenkins や Travis などの CI ツールの適切な回避策ではありません。

編集:コードサンプルの埋め込み

JC および K ユニット テスト ライブラリを追加するトップ レベルの build.gradle:

プロジェクト レベルの build.gradle に robolectric を追加します。

私の非常に基本的なアクティビティは、テンプレートが作成したままです。

setupActivity() メソッドのエラーが原因でアサートに到達できない私のダミー テスト:

編集 #2: テストを実行するには、プロジェクトの最上位ディレクトリから次のコマンドを呼び出します。

また、gradle ラッパーの外でテストを実行しようとしましたが、同じ結果が得られました

0 投票する
1 に答える
729 参照

android - Android Studio で Robolectric テストを実行するための Gradle Build Test "Could not normalize..."

Windows 8.1 で gradlew test --stacktrace を実行しています。次のエラーが表示されます。

ファイル 'C:\Users\Aleesa\Documents\SDK\platforms\android-18\android.jar;C:\Users\Aleesa\Documents\SDK\add-ons\addon-google_apis-google-18 のパスを正規化できませんでした\libs\usb.jar;C:\Users\Aleesa\Documents\SDK\add-ons\addon-google_apis-google-18\libs\effects.jar;C:\Users\Aleesa\Documents\SDK\add-ons \addon-google_apis-google-18\libs\maps.jar'.

その名前のファイルがないので、私はそれを知っています。これを分割 (";") できるようにする必要がありますが、DST での方法がわかりません。ここに私のモジュールのbuild.gradleがあります:

0 投票する
2 に答える
1810 参照

gradle - Robolectric で複数の res フォルダーを使用する

現在の Gradle 構成には、複数の (マージされた) res フォルダーがあります。

しかし、Robolectric では、AndroidManifest を使用して単一のディレクトリを構成できます。

このように、テストは失敗しています。私のgradleファイルを反映するようにrobolectricを設定することは可能ですか?

0 投票する
0 に答える
284 参照

robolectric - アクティビティが再作成されたかどうかのテスト

Robolectric を使用してアクティビティを再作成することになっているアクティビティでメソッドをテストする際に問題があります。

メソッドコードは次の行に沿っています。

最後にコメントアウトしている限りrecreate、すべてがうまくいきますが、コメントアウトされていない場合、アクティビティが破棄されたと言ってテストは失敗します。コードは実際のアプリで正常に動作するようです。Ottoまた、関連する場合、イベントはバスによって渡されます。

編集:クラッシュログを含む