問題タブ [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 投票する
2 に答える
9042 参照

android - 各テスト スイートに対して setUp() メソッドと TeaDown() メソッドを実行する InstrumentationTestCase Android

テスト自動化ツールを実装しており、拡張するクラスがありますInstrumentationTestCase。例えば:

のテストを実行するとBaseTests、setUp() メソッドが 2 回呼び出されます。実行前に 1 回、実行test_one()後にもう1 回test_two()。これは、2 つのメソッドの両方を実行した後に呼び出されます。

ここでやりたいことは、すべてのBaseTestsテストを実行するために setUp() メソッドと TeaDown() メソッドを 1 回だけ呼び出すことです。したがって、メソッド呼び出しの順序は次のようになります。

1) セットアップ()

2) test_one()

3) test_two()

4) ティアダウン()

そのようなことをする方法はありますか?

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

gradle - guava 依存関係と Espresso を使用してアプリケーションを構成する方法

アプリケーションの依存関係としてグアバがあり、インストルメンテーション テストで Espresso を使用しています。Espresso には が付属しcom.google.guava:guava:16.0guavaおり、アプリケーションの依存関係があるため、依存関係の重複の問題を処理する必要があります。

Jake Wharton はDouble Espressoで、次のような方法で依存関係の重複の問題を解決できると述べています。

ただし、その行では、次のエラーがたくさん表示されます。

エスプレッソがグアバの依存関係を見つけていないようです。私が試してみると

これjava.lang.NoSuchMethodError: com.google.common.base.Optional.getはエスプレッソ コードからはなくなりましたが、インストルメンテーション テストが guava のメソッドの 1 つを使用するアプリケーション コードにヒットすると、まだ次のエラーが発生します。java.lang.NoClassDefFoundError

このエラーは、私も取り除くときに発生しandroidTestCompile('com.google.guava:guava:17.0')ます。

AndroidTestProvidedグアバで試してみましたが、運が悪いです。

そして、インストルメンテーション テストがグアバ メソッドを使用してアプリケーション コードにヒットしたときに、グアバのパスが見つからない理由についてのアイデアが不足しています。

ここにスタックトレースがあります

どこに当たるnew Ordering<SomeClass>()か、どれを使うかcom.google.common.collect.Ordering

フィードバックをお待ちしております。

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

android - Android バイトコード インストルメンテーション

バイト コード インストルメンテーションを使用して、Android アプリケーションの CPU およびメモリ使用量の情報を抽出したいですか? Android でバイトコード計測を実行する方法を誰か教えてもらえますか?

バイトコード計測を実行する ASMDEX と Dex-maker を見つけましたが、十分なドキュメントがありません。

インストルメンテーション ファイルをどこに置くかを正確に知りたい (.apk ファイルしかないと仮定して)

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

android - Android インストルメンテーション ホーム ボタン

インストルメンテーションで実行されているアプリケーションに HOME キーを送信しても何も起こらない理由はありますか?

これは、Robotiumを使用する場合も、 Instrumentationを直接使用する場合も同じです。動作は、エミュレーターとルート化されていないデバイスで同じです。

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

android - 別のクラスから runTestOnUiThread を実行する

現在のフレームワークには、ActivityInstrumentationTestCase2 | を拡張する基本クラスがあります。Android 開発者。通常、テスト ケース クラスを記述するときは、この基本クラスを継承し (これを FooBase と呼びます)、メソッドを記述します。ご想像のとおり、これは非常に大きくなっています。テストしている機能の各領域を独自のクラスにして、再利用できるようにリファクタリングしたいと考えています。私のあいまいなクラスが十分に正確であることを願っています 目標は、メソッドを異なるクラスに分割して、テストケースから呼び出すことができるようにすることです

そして私たちのテストは例えば

リファクタリングを試みた方法

私の新しいテストケースは次のようになります

これを実行すると、super.runTestOnUIThread で null ポインターが取得されます。

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

android - 1 つのデバイスだけでスプーンを実行する方法

テストを 2 つの異なるデバイスで同時に実行できない状況があります。別の理由で、2 つのデバイスを接続したままにしておく必要があります。「mvn Spoon:run」を実行して、すべてのデバイスではなく 1 つのデバイスでのみテストを実行するにはどうすればよいですか?

ありがとう!

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

android - フレーバーとインストルメンテーション テスト - gradle 構成

プロジェクトでフレーバーを使用しており、各フレーバーに固有のインストルメンテーション テストを追加したいと考えています。

だから私は作成しました

しかし、正しく動作しません。

だから、私はbuild.gradleでそれを設定しようとしました、私は追加しました

しかし、私はエラーが発生します:

エラー:(59, 0) ソース セット ding でプロパティ 'instrumentTest' が見つかりませんでした。

ここで最善の解決策は何ですか?

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

java - Junit を使用して SQLite への書き込みと読み取りをテストする

次のようなdbManagerがあります。

このデータベースへの書き込みと読み取りを Android テストケースでテストしたかったので、次のように開発しました。

ただし、テスト スイートを実行すると、dbWrite を初期化しようとしたところでクラッシュしました。

「エラーコード= 14、dbを開けません」というエラーが表示されました。私は自分のデータベース作成コードなどに何か問題があると思っていました.

次に、テスト アクティビティを作成して別の方法でテストしました。

これにより、データベースの各エントリが問題なくログに記録されるため、データの書き込みと読み取りが正常に行われたことがわかります。

テスト スイート コードの何が問題なのか、誰にもわかりますか? 今後このプロジェクトのテストケースを書きたいのですが、これがわからなければできません...