問題タブ [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 と Spoon を使用して特定のテストを実行する
Android テストにEspressoとSpoonを使用しています。私はこれらに非常に満足しています。私の唯一の問題は、特定のテストを実行しようとしていることです。私はスプーンのサイトでこれを見つけました:
gradle スプーン -PspoonClassName=fully.qualified.TestCase
しかし、私はこれを機能させることができません。それはまだ私のすべてのテストを実行します。助言がありますか?私は次のようにコマンドを実行しています:
gradle スプーン -PStressTest=com.espresso.websocket
StressTest
私のクラスはどこにあり、com.espresso.websocket
私のパッケージはどこにありますか。
android - Espresso - 非同期に読み込まれたデータで TextView をアサートする
Android 用の Google Espresso を使用して UI テストを書いていますが、コンテンツが Web サービスから非同期に読み込まれる TextView テキストをアサートする方法に行き詰まっています。私の現在のコードは次のとおりです。
(1) で、Web サービスから要素をロードするようアクティビティに通知します。(2) では、ビューがコンテンツをアサートするのを待っています。これは、Web サービスがアプリに応答する前に実行されるため、テストが失敗する部分です。
特定のデータが画面に表示されるのを待つよう Espresso に指示するにはどうすればよいですか? または、そのようなテストを書くために別の方法で考えるべきですか?
java - 自動化テストの終了時期を制御する - Espresso
テスト中の異常な状況があります。Espresso を使用してテストを作成しています。私は Espresso と InstrumentationTestCase がこれを行うことを意図していないことを知っています。
クラスの 1 つで、特定の値の変更を通知するリスナーを作成しました。テスト スイートでリスナーを使用します。
リスナーから値を取得したら、値が変更されたことをアサートする必要があります。
私の問題は、リスナーから値を受け取る前にテストが終了することです。
これらは私が使用している2つの方法です。は最初createSpeedDelegate()
に呼び出されます。それから私は電話しますsendSpeedChanges
。これをX回行う必要があります。
ノート:
- 情報を取得するのに約 200 ミリ秒かかります (平均)。
sendSpeedChanges()
値を確認するまで呼び出すことはできませんonSpeedChange()
Thread.sleep();
リスナーがメインスレッド上にあるため使用できません。
を追加しようとgetInstrumentation().wait(2000);
しましたが、getInstrumentation().waitForIdleSync();
明らかにどちらも機能しません。
完璧な世界では、次のようにします。
ただし、これは値がチェックされるのを待ちません。値を待つと、テスト ランナーはすべてのテストが完了したと見なして終了します。
私の質問は、テストがいつ終了するかを制御する方法はありますか? 私のテストは完了したように見えますが。
android - Android gradle で LICENSE.txt ファイルが再び複製される
Androidでこのエラー(もう一度!)が発生します。最近、gradle 0.7.3 の最新バージョンと espresso フレームワーク (1.1) の最新バージョンに更新され、悪名高い「重複ファイル」バグに戻りました。
タスク ':mobile:packageTesttype' の実行に失敗しました。
APK META-INF/LICENSE.txt ファイル 1 にコピーされた重複ファイル: /Users/mwolfe/.gradle/caches/modules-2/files-2.1/org.apache.httpcomponents/httpmime/4.2.4/dba4d4d224e2ca872af5be8d299277583145478/httpmime-4.2 .4.jar ファイル 2: /Users/mwolfe/.gradle/caches/modules-2/files-2.1/org.apache.httpcomponents/httpmime/4.2.4/dba4d4d224e2ca872af5be8d2992777583145478/httpmime-4.2.4.jar
これらのファイルを除外するように build.gradle ファイルを既に設定しています。アプリはデバッグ/リリース用に正常にアセンブルされ、正常に実行されますが、テスト用のビルド/実行は失敗します。具体的には、次のコマンドで機器テストを実行しようとすると、上記のエラーが発生します。
私もライブラリ プロジェクトを持っており、両方のビルド ファイルに除外を追加するあらゆる方法を試しました。この特定の依存関係は、ライブラリ プロジェクトからのものです。どちらも以下の例外があります
また、ここのエスプレッソ ドキュメントに示されているように、上記の META-INF 部分を削除してみました: https://code.google.com/p/android-test-kit/wiki/Espresso#Espresso_Setup_Instructions
これらのファイルを jar から削除できることはわかっていますが、かなり面倒です。
android - Espressoでダイアログが表示されるか確認する
新しいandroid-test-kit (Espresso)を使用していくつかのテストを作成しようとしています。しかし、ダイアログが表示されているかどうかを確認し、それに対していくつかのアクションを実行する方法に関する情報が見つかりません(肯定ボタンと否定ボタンをクリックするなど)。WebView
ダイアログは、アプリケーション自体ではなく、によっても表示される場合があることに注意してください。
どんな助けでも大歓迎です。リンク、または基本的なサンプルコードが必要です。
- ダイアログが表示されるかどうかを確認する
- ダイアログ ボタンをクリックする
- ダイアログの内部ビューと対話します (カスタム ビューの場合)
- ダイアログの外側でクリックをプリフォームし、表示されているかどうかを確認します (たとえば
setCancelable(false)
、ダイアログ ビルダーで呼び出され、それを確認したい場合)。
アドバイスありがとうございます!
android - ActivityInstrumentationTestCase2 で Android テストが開始されない
Androidアプリケーションをテストするためにいくつかのテストクラスを作成しました。
この場合、BTest のテスト メソッドは開始されません。ATest と BTest の両方が原因だと思いextends ActivityInstrumentationTestCase2<FooActivity>
ます。
BTest をそのまま書いたらextends ActivityInstrumentationTestCase2<BarActivity>
、テストが始まりました。
- を拡張する ATest と BTest を開始するにはどうすればよい
ActivityInstrumentationTestCase2<FooActivity>
ですか? - 起動できない場合、BTest を起動できないのはなぜですか?
私はこれら2つの問題に6時間苦労しました。
助けてください。ありがとうございました。
android - Android Espresso onData with doesNotExist
ListView
に特定のアイテムが含まれていないことを確認しようとしています。私が使用しているコードは次のとおりです。
名前が存在する場合、 のため、正しくエラーが発生しますcheck(doesNotExist())
。名前が存在しない場合、allOf(...)
何にも一致しないため、次のエラーが発生します。
のような機能を得るにはどうすればよいonData(...).check(doesNotExist())
ですか?
編集:
私は、try/catch を使用してイベントの getCause() を検査することで、必要な機能を取得するためのひどいハックを持っています。これを良い技術に置き換えたいと思います。
java - エラー = 次のインストルメンテーション情報が見つかりません: ComponentInfo{ }
エスプレッソ テストを立ち上げようとしていますが、このエラーが発生し続けます。
一度は機能しましたが、レポートを正しく再作成できません。それらはただの空白で、何もテストしていません。を含む多くのコマンドを試しました
と
ここに私のコードスニペットがあります:
AndroidManifest.xml
TestStartScreen.java
build.gradle
それが何かを意味する場合 -<instrumentation>
マニフェスト内の属性は、IntelliJ が認識しないかのように赤く表示されます。
どんな助けでも素晴らしいです、ありがとう!
unit-testing - 遅延エスプレッソは処理できません
Google Espresso テストフレームワークでソフトウェアをテストするには、次の問題があります。
プログラムの開始時に、スプラッシュ スクリーンが開始され、アプリケーション全体が初期化されます。この後、入力を求めるアクティビティを開始します。
Espresso では、アプリケーションが起動し、次のコードでテストが開始されます。 onView(withId(R.id.chooseBookTitle)).perform(click());
ディスプレイにはまだスプラッシュ スクリーンが表示され、chooseBookTitle は後でしか表示されないため、これはクラッシュします。キーが存在する前に Google-Espresso がキーをクリックするのを防ぐにはどうすればよいですか?
(待機ループを挿入したくありませんが、イベント駆動型のままにしておきます。最悪の場合、Robotium に戻ります)