問題タブ [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.
android - Android Studio Robolectric リソース フォルダー
アプリ プロジェクトと依存関係の Android ライブラリ プロジェクトで構成される Android スタジオにワークスペースがあります。
アプリ プロジェクト リソースと依存関係ライブラリ プロジェクト リソースの両方から文字列を読み込むクラスをテストするアプリ プロジェクトの単体テストがあります。
Roboletric で単体テストを実行すると、テストされたクラスがライブラリ プロジェクト リソースから文字列を読み込もうとすると、リソースが見つからないという例外が発生します。
この問題を解決するにはどうすればよいですか? Robolectric が使用するアプリと依存ライブラリ リソース ディレクトリの両方を指定するにはどうすればよいですか?
android - Google API を使用した Robolectric - AnnotationFormatError
Google API ターゲットに対してコンパイルされたプロジェクトで動作するように robolectric をセットアップしようとしましたが、動作しません。
私はさまざまなアプローチを試し、deckard-gradleを使用して問題を切り分けました:
デッカード プロジェクトをダウンロードすると、すべて正常に動作し、サンプル テストが正常に実行されます。ただし、gradle ファイルの compileSdk 設定を Google Inc.:Google APIs:19 に変更すると、テストの実行時に次の AnnotationFormatError が発生します。
ここに私のセットアップからのいくつかの関連するスニペットがあります:
build.gradle
私のテストクラス:
また、 robolectricの指示に従って、マップとサポート ライブラリをローカルの Maven リポジトリにインストールしました。
私のセットアップで何が間違っているのでしょうか?
java - Robolectric、gradle、およびビルド タイプの問題
ロボエレクトリックとグラドルに関する投稿がたくさんあることは知っていますが、プロジェクト用に設定できませんでした。
状況から始めましょう。
私のプロジェクトには、それぞれに異なるパッケージ名を使用する 3 つのビルドタイプがあります。マニフェストでパッケージ名を使用する必要がある SDK を使用しているため、これを解決するためにマニフェストでキーを使用し、各 buildType でこれを使用します
manifestPlaceholders = [_MY_PACKAGENAME_: getName()]
そのため、グラドルのガイドで言われているように roboelectirc を構成しましたが、動作させることができません。プラグイン Android Unit Test などのさまざまなことを試してみましたが、すべてのソリューションでさまざまなエラーが発生しています。
お気に入りjava.lang.NoSuchMethodError cannot be cast to java.lang.RuntimeException
誰でもこれで私を助けることができますか?
テスト例コード:
そして、これが出力です
android - 単一のテストを実行する Robolectric-Gradle プラグイン
Robolectric-Gradle プラグインを使用して単一のテストを実行することは可能ですか?
私はこれで試しました:
しかし、それは機能していません。
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 ラッパーの外でテストを実行しようとしましたが、同じ結果が得られました
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があります:
gradle - Robolectric で複数の res フォルダーを使用する
現在の Gradle 構成には、複数の (マージされた) res フォルダーがあります。
しかし、Robolectric では、AndroidManifest を使用して単一のディレクトリを構成できます。
このように、テストは失敗しています。私のgradleファイルを反映するようにrobolectricを設定することは可能ですか?
robolectric - アクティビティが再作成されたかどうかのテスト
Robolectric を使用してアクティビティを再作成することになっているアクティビティでメソッドをテストする際に問題があります。
メソッドコードは次の行に沿っています。
最後にコメントアウトしている限りrecreate
、すべてがうまくいきますが、コメントアウトされていない場合、アクティビティが破棄されたと言ってテストは失敗します。コードは実際のアプリで正常に動作するようです。Otto
また、関連する場合、イベントはバスによって渡されます。
編集:クラッシュログを含む