問題タブ [android-instrumentation]

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 投票する
3 に答える
10922 参照

android-studio - Android Studio インストルメンテーション テスト ビルド バリアント

そのため、カスタム ビルド バリアントであるモックを使用してインストルメンテーション テストを作成しようとしています。このビルド バリアントでは、クラスとサーバーをモックアップしました。モック ビルドを自分で使用しようとすると問題なく動作しますが、モック ビルドをテストに使用できないようです。Android Studio 内での構成は次のようになります。

ビルド バリアント

テストの実行に問題があったため、モック バージョンを除くすべてのバージョンのアプリをアンインストールしようとしましたが、このエラーが発生し続けます。

テストの実行が開始されましたテストの実行に失敗しました: インストルメンテーション ターゲット パッケージが見つかりません: com.teamtreehouse.review.debug

ただし、デバッグ ビルド バリアントに対してテストを実行しようとすると、正常に動作します。デバッグ バージョンをインストールしてから、テストの実行に進みます。

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

java - Android で LinkedList をスパイすると java.lang.AbstractMethodError

AndroidでLinkedlistをスパイしたい。

ただし、例外が発生しました。

ライブラリの依存関係は次のとおりです。

にアップデートmockito-core-1.10.19.jarしてもmockito-core-2.0.31-beta.jar

問題はまだ存在します。

でもMockito.mock(Linkedlist.class)大丈夫です、私はこの問題について何も考えていません。

ありがとうございました。

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

android - インストルメンテーション テストでアプリ プロセスを強制終了して再起動することはできますか?

アプリケーションがクリーンな状態から開始するユースケースをテストする必要があります。つまり、テスト開始前にプロセスが実行されていません。からわかるようにlogcat、すべてのインストルメンテーション テストは 1 つのプロセス インスタンス/セッションで実行されるため、私の場合のテストの結果は、#1 として実行されるかどうかによって異なります。このようにすべきではありません - ご存知のように、単体テスト (またはインストルメンテーション テスト) は自律的でなければなりません。

標準の Android インストルメンテーション テスト ツールと機能を使用して、特定のテストの前に TestRunner にプロセスを強制的に再起動させる方法はありますか? そうでない場合、それを達成するのに役立つハックやサードパーティのライブラリはありますか? または、テスト X を最初に実行する必要があると具体的に言う方法はありますか(最悪のオプションですが、それでも)?

FLAG_ACTIVITY_CLEAR_TOP具体的には、私のテストはインテントによるアクティビティの起動に関連しており、アクティビティの起動モード (例 ) に加えてインテント フラグ (例)singleTopとプロセスの状態がテストの結果を大きく左右します。

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

android - ビューが IdleResource で表示されるまで待ちます

Espresso 2.2 を使用してインストルメンテーション テストを作成しています。

テストしたいフロー:

  1. テストでクリックされたradioButton
  2. onClick は API へのリクエストを起動します
  3. 毎回異なる時間の後、私は応答を受け取ります
  4. 肯定応答は、アクティビティで呼び出されるインターフェイス メソッドをトリガーします
  5. onRequestSuccess vSetupAmount という名前の画面に追加のパネルを表示しています

radioButton をクリックした後に IdleResource を登録したいので、vSetupAmount が表示されるまで待ちます。しかし、私はそれを機能させることはできません。私が間違っていることを教えてください。

私はそのような IdleResource を書きました:

そのため、アクティビティを IdleResource に渡し、ビューを変数にリンクしています。isIdleNow() が値 true を返すまで、IdleResource はテストを通過させないことを理解しています。したがって、view が View.GONE の場合、それ以上は進みません。

テストでどのように見えるか:

だから私はradioButtonをクリックします。IdleResource は正常に登録されましたが、何も起こりません。デバイスの API 応答が来ます。vSetupAmountが表示されていますが、

これは永遠にチェックされています(ただし、画面に自分のビューが表示されます)常にfalseを返します。

私は何を間違っていますか?

0 投票する
4 に答える
1582 参照

android - Spoon Gradle Plugin の applicationApk と instrumentationApk を設定します

SpoonGradlePlugin でテストを実行するために使用される .apk ファイルを設定したいと思います。

gradle ファイルからプログラムで設定できる利用可能なプロパティがあります。

https://github.com/stanfy/spoon-gradle-plugin/blob/master/src/main/groovy/com/stanfy/spoon/gradle/SpoonExtension.groovy

しかし、私のプロジェクトにはさまざまなフレーバーと名前があり、それらをテストしたいと思います。現在のセットアップでは、次のようになります。

私のビルド名は次のとおりです。

.apk を gradle コードまたはコンソールのどこかにセットアップしたいのはそのためです。私がこれまでに見つけたものには、Spoon Gradle Plugin で利用可能なフィールドがあります。

https://github.com/stanfy/spoon-gradle-plugin/blob/master/src/main/groovy/com/stanfy/spoon/gradle/SpoonRunTask.groovy

名前付き:

しかし、SpoonExtension.groovy のプロパティのようなグラドルにはアクセスできません。

これらのフィールドを設定する方法はありますか?

//編集 - いくつかの試行を追加しました: これは私の基本スプーン構成です:

そして、それを拡張し、instumentationArgs を上書きしてパッケージを設定し、他の種類のテストを起動するタスク。

そして今、applicationApk または instrumentationApk ファイルを編集しようとしています:

ここに画像の説明を入力

ここに画像の説明を入力

ここに画像の説明を入力

Edit2:私は新しいことを試しました:

そして端末応答:

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

android - Robolectric InstrumentationTestCase IllegalStateException インストルメンテーションが登録されていません

UI スレッドで実行するコードを使用して、非常に単純なインストルメンテーション テスト ケースを作成しようとしています。テストクラスは次のとおりです。

しかし、私が呼び出そうとするinjectInstrumentation(InstrumentationRegistry.getInstrumentation())と、

このテストはどのように実行できますか?

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

java - プライベート Android ライブラリ プロジェクトのインストルメンテーション テスト

Android ライブラリ プロジェクトを作成しており、単体テストとインストルメンテーション テストを追加したいと考えています。

これがどのように可能であるかを理解するのに苦労しています。最初にこのページをチェックアウトし、2 番目の箇条書きで説明されている内容を実装してみました。私が遭遇した問題は、テスト対象のライブラリにはいくつかのパブリック メソッドしかなく、残りはパッケージ プライベートであるということでした。そのため、プロジェクトにアプリケーション モジュールを追加しようとしたとき、アプリケーション モジュールは、実際にテストしようとしているパッケージ プライベート クラスへの参照を取得できませんでした。

リンクの最初の箇条書きが曖昧すぎて、何をするように指示されているのか理解できません。

テストが必要なパッケージプライベートクラスを使用して、Android ライブラリプロジェクトで単体テスト/インストルメンテーションテストを実行した経験がある人はいますか? もしそうなら、それをテストするために必要なセットアップを理解するのを手伝ってもらえますか?