問題タブ [android-espresso]
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 - Espresso CursorAdapter: 最初の項目をクリックします
Listview
に裏打ちされたの最初のアイテムをクリックできませんCursorAdapter
。これが私が試したことです:
...そしてここに私が得るものがあります:
com.google.android.apps.common.testing.ui.espresso.PerformException: ビューで「アダプタ データのロード」を実行中にエラーが発生しました「クラスから割り当て可能です: クラス android.widget.AdapterView」。com.google.android.apps.common.testing.ui.espresso.PerformException$Builder.build(PerformException.java:67) で com.google.android.apps.common.testing.ui.espresso.base.DefaultFailureHandler で。 com.google.android.apps.common.testing.ui.espresso.base.DefaultFailureHandler.handle(DefaultFailureHandler.java:40) で getUserFriendlyError(DefaultFailureHandler.java:57) com.google.android.apps.common.testing で。 ui.espresso.ViewInteraction.runSynchronouslyOnUiThread(ViewInteraction.java:159) com.google.android.apps.common.testing.ui.espresso.ViewInteraction.doPerform(ViewInteraction.java:90) com.google.android.apps. common.testing.ui.
android - ダガーがコンパイル依存関係に既に含まれている場合、Espresso を instrumentTest 依存関係に追加する
私は gradle プロジェクト (Gradle 1.9 を使用)を持っており、コンパイル依存関係に短剣があるプロジェクトにエスプレッソ ( https://github.com/JakeWharton/double-espressoから) を追加しようとしています。
これが私の依存構造です:
依存関係 {
}
今私の問題は、テストが開始された直後に「gradle connectedInstrumentTest」を介してテストを開始すると(アクティビティが起動されるのを確認します)、次のエラーが発生することです。
...activity.MainActivityTest > testItemText[Nexus 5 - 4.4.2] FAILED java.lang.IllegalStateException: オブジェクト グラフの作成エラー: com.google.android.apps.common.testing.ui.espresso.FailureHandler をバインドできませんでしたクラス com.google.android.apps.common.testing.ui.espresso.base.BaseLayerModule で必要なキー com.google.android.apps.common.testing.ui.espresso.FailureHandler :ClioAndroid:connectedInstrumentTest FAILED
除外グループ: 'com.squareup.dagger' をコメント アウトすると、別のエラーが発生します: 「http://b.android.com/65445」に従って予期される「java.lang.IllegalAccessError」が原因でインストルメンテーションの実行に失敗しました。
問題は、「除外グループ: 'com.squareup.dagger'」を追加すると、espresso の短剣オブジェクト グラフが台無しになることだと思います。そのための回避策を見つけることができませんでした。どんな助けでも大歓迎です。
android - Android アプリケーションのテスト中にクリックを挿入できない
Android テスト フレームワーク (Espresso、Robotium など) を使用しているときに、すべてのテストが失敗し、logcat にこの種の警告が表示されます。
W/InputDispatcher(61): 権限が拒否されました: pid 123 uid 10001 からのイベントの注入 W/WindowManager(61): 入力イベントの注入に失敗しました。
android - getActivity() 呼び出しにより RuntimeException: インテントを起動できませんでした Intent act=android.intent.action.MAIN
更新 #1: この投稿の最後に追加された詳細情報
Android の開発とテストは初めてです。
エスプレッソのテストが 3 つあります。最初のテストは成功しますが、2 番目のテストの前に setUp() メソッドで getActivity() を呼び出すと常に失敗するため、2 番目のテストは実行されません。
Blockquote java.lang.RuntimeException: 45 秒以内にインテント { act=android.intent.action.MAIN flg=0x10000000 cmp=my.packagename/.ActivityMain } を起動できませんでした。...
3 番目のテストに合格します。
作成時に長時間実行される操作、アニメーション、またはネットワーク呼び出しはありません。アプリのすべてのメニュー項目をクリックして手動でテスト フローを問題なく繰り返すことができます。
何らかの理由で、最初のテストは、2 番目のテストの前に setUp() で次の getActivity() 呼び出しを「中断」します。次のすべてのテスト (2 番目のテストの後) は正常に実行されます。
同様の質問を見つけましたが、解決されていないようで、少し異なる問題があります。
テストコード:
エラー トレース:
更新 #1
クリーンな Eclipse プロジェクトと、そのプロジェクト用のクリーンな Espresso テストを作成しました。Espresso のテスト実行中に同じエラーを再現できました (ただし、このエラーの原因が実際のアプリでも同じかどうかはまだわかりません)。
ターゲット アプリには 3 つのアクティビティ (メイン、2 番目、3 番目) があります。ユーザーは、メニュー項目をクリックしてそれらの間を移動します。メイン アクティビティは 2 番目のアクティビティから始まり、2 番目のアクティビティは 3 番目のアクティビティから始まります。
最初のテストで clickMenuItem() (以下を参照) AND Thread.sleep(500) を呼び出すと、2 番目のテストの前に getActivity() 呼び出しで setUp() がクラッシュすることがわかりました。スリープのタイムアウトが 0.5 秒未満の場合、クラッシュはありません。
同時に、Thread.sleep(10000) を呼び出し、clickMenuItem() を呼び出さない場合、クラッシュも発生しません。最初のテストで 10 秒間正常にスリープし、2 番目のテストにも合格します。
テストコード:
対象コード:
主な活動:
2 番目のアクティビティ:
3 番目のアクティビティ:
android - Espresso からテスト レポートを生成する方法
Ant を使用して Jenkins で正常に実行されているテスト プロジェクトがあります。コンソール出力にテスト結果が表示されますが、レポートを生成するにはどうすればよいですか?
android - intellij + gradle + robolectric + エスプレッソ
上記のフレームワークを使用してプロジェクトをセットアップしようとしています。このデモンストレーション プロジェクトでdeccard-gradleを使用していますが、gradleを同期できません。org.robolectric.gradle:gradle-android-test-plugin:0.9.4-SNAPSHOT が見つからなかったと表示されます。これを修正するにはどうすればよいですか? 誰かがこれを機能させましたか?ここにbuild.gradleファイルがあります
android - Espresso - リストビューでテキストをクリック
Espresso を使用して、リスト ビュー内のテキストをクリックしようとしています。彼らがこのガイドを持っていることは知っていますが、テキストを探してこれを機能させる方法がわかりません。これは私が試したものです
予想通り、これはうまくいきませんでした。エラーは、階層にビューがないことを示していました。文字列を選択する方法を知っている人はいますか? ("ASDF"
この場合)よろしくお願いします。
@haffaxによる更新
エラーを受け取りました:
com.google.android.apps.common.testing.ui.espresso.AmbiguousViewMatcherException: 'is assignable from class: class android.widget.AdapterView' は、階層内の複数のビューに一致します。
2 番目のエラー
このコードで
このエラーが発生します
com.google.android.apps.common.testing.ui.espresso.PerformException: ビューで「アダプター データの読み込み」を実行中にエラーが発生しました。「コンテンツの説明: is "MapList"」です。
原因: java.lang.RuntimeException: 一致するデータが見つかりません: asString("ASDF" で始まる文字列)
解決
onData(anything()).inAdapterView(withContentDescription("desc")).atPosition(x).perform(click())
java - Android のエスプレッソ テストを実行できません
Android のエスプレッソ テストの設定/実行で問題が発生しています。私の TestClass は以下のようになります:-
AndroidManifest.xml は次のようになります:-
実行構成は、Google InGoogleInstrumentationTestRunner
を InstrumentationRunner として使用するように更新されています。
ただし、テストを実行すると、コンソールに以下が表示されます:-
- デバイス emulator-5554 でインストルメンテーション android.test.InstrumentationTestRunner を起動する
- Eclipse へのテスト情報の送信
- テスト終了
テストの実行については言及されておらず、テストは実行されません。ここで何が欠けているのでしょうか?
java - Dalvik ランタイム デバイスでの Espresso 機器テストの実行に関する問題
FragmentActivity can't be testing via ActivityInstrumentationTestCase2 と同様の問題に遭遇しています
最上位のソリューションの問題は、Eclipse ビルド システムの使用にのみ適用されることです。プロジェクトに Gradle を使用しています。
ART ランタイムを実行している Nexus 5 では、Espresso 機器のテストが完全に実行されます。Dalvik ランタイムまたはエミュレーターで Nexus 4 を使用すると、テスト フレームワーク外でアプリを実行した場合には発生しない例外が発生します。
ログで、リンクされた質問に似たこれらの疑わしいメッセージを見つけました。
ProgressDialogFragment
はDialogFragment2
Android サポート ライブラリのDialogFragment
クラスのサブクラスです
これが役立つ場合、私のGradleファイルの依存関係は次のとおりです。
私の質問は、アプリケーション APK とテスト APK の間で同じサポート ライブラリが使用されていることを確認するにはどうすればよいですか? 同じサポート ライブラリのバージョンを確保するために追加しようとしましinstrumentTestCompile 'com.android.support:support-v4:+'
たが、それは役に立ちませんでした。