問題タブ [android-testing]
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 - Intellij IDEA: SherlockActivity のインストルメンテーション テストで NoClassDefError が発生するが、Maven コマンドラインから作業する
Activity
which extendsの計測テストをセットアップしようとしていますがSherlockActivity
、コンパイル (および実行) されますが、例外で失敗しNoClassDefError
ます:
私は Maven を使用してActionBarSherlock
おり、テスト プロジェクトの pom.xml で依存関係として取得しています。
これはテストケースです:
アクティビティを Sherlock 以外のアクティビティに変更すると、他のテストとこのテストを正常に実行できることに言及する価値があります。
また、maven コマンド ラインからのテスト プロジェクトのビルドと実行が機能し、テストがエミュレーターで実行され、合格しています。
どうすればこれを修正できますか?
intellij-idea - 特定のRobolectricテストのjMockitインスタンス化を無効にする方法は?
私の Android 単体テストの多くは Robolectric で書かれていますが、非常に制限があるため、いくつかのテストには jMockit を使用したいと考えています。
問題は、jMockit がクラスをインスタンス化するたびに Robolectric テスト ランナーが失敗することです。
システムプロパティ「jmockit-mockParameters」を「annotated」に設定することにより、jMockitに注釈付きクラスのみをインスタンス化するように指示できることがわかりました - http://code.google.com/p/jmockit/source/detail?r=2066
Intellij IDEA を使用しており、テスト実行構成の VM オプションに追加しました-Djmockit-mockParameters=annotated
が、機能しません..
このシステム プロパティを適切に設定するにはどうすればよいですか?
android - Robolectric: ViewHolder パターンで ListView をテストすると NullPointerException が発生する
ListActivity
ViewHolder パターンを実装するアダプターです。
アダプターとビューホルダー:
このクラスで Robolectric テストを実行するとNullPointerException
、holder.name.setText
とholder.address.setText
行が表示されます。
私の推測では、Robolectric はrow.findViewById
正しく処理できません。
どうすれば修正できますか?
これは例外です:
android - ファイルがディレクトリ res/layout/ にない場合、Robolectric 1.1 はレイアウト ファイルのロードに失敗します。
Robolectric 1.1 でテストを実行すると、レイアウト ファイルを拡張すると次のエラーが発生します。
このエラーが発生する理由を知っている人はいますか? 私が見たところ、Robolectric のバージョン 1.1 では、レイアウト ファイルのロード方法に変更はなく、フォルダ layout/: を検索します。
ただし、レイアウト ファイルが別のディレクトリ (例: layout-normal-hdpi) にある場合、このエラーが発生します。
誰かがこれに対する解決策を知っていますか?
android - システムアプリを含む Android インストルメンテーション テスト
ここで明らかな何かが欠けているに違いありません:
Robotium の助けを借りて、デバイスでインストルメンテーション テスト ケースを実行しています。ある時点で、テスト対象のアプリによって、既定の電子メール作成アクティビティが起動されます。
私が知りたいのは、そのアクティビティを閉じて、アプリのアクティビティを再び表示するにはどうすればよいですか? これが必要な理由の少なくとも1 つは、現在のテスト ケースが完了した後、電子メール アクティビティがフォアグラウンドにとどまり、次のテスト ケースが適切に実行されないことです。
メールアクティビティに必要なバックキーを送信しようとしましたが、this.sendKeys(KeyEvent.KEYCODE_BACK)
またはsolo.goBack()
運がありませんでした。
パッケージ内の最上位アクティビティへの参照を実行solo.getCurrentActivity()
または取得した場合、実際のフォアグラウンド アクティビティを取得する方法はありません。また、言及されたものは、メールのアクティビティではなく、私のアクティビティに直接行きます。this.getActivity()
sendKeys/goBack
アプリが Play ストアのメイン アクティビティを起動すると、同じ問題が発生します。
電子メール アクティビティはテスト対象のパッケージの一部ではなく、これが問題の一部である可能性があることに気付きました。
それで、電子メール活動を閉じる方法はありますか?
編集
今のところ、@Joe Malinの最初の提案に固執しています:
私のViewModel(またはコントローラー)には、private static boolean _productionMode = true;
テスト中にのみ使用されるヘルパーメソッド(内部ヘルパークラスの場合はより良い)があります:
次に、ViewModel の通常のメソッドで次のようにします。
java - とにかくあなたの活動の1つを直接開始する方法はありますか?
重複の可能性:
別のアプリケーションでアクティビティを開始するには?
私のアプリケーション スキーマはそのようなものです。
追加情報: すべてのアクティビティ/アクションは、その画面の情報とアセットを取得するための API 呼び出しを要求します。
私のシナリオ/質問はそれです。
とにかくありますか?アプリの外部から BanksActivty またはランチャーでも mainActivity でもない他のアクティビティを直接開始できますか?
質問は理にかなっていますか?
android - 2つ以上のアプリケーションにまたがるAndroidテストケースの書き方
Robotiumのドキュメントによると、2つのアプリケーションにまたがるテストケースを作成することはできません。「テストプロジェクトはtargetPackageにロックされています。そのターゲットパッケージの外に出ることは、Androidプラットフォームでは許可されていません。したがって、2つのテストプロジェクトが必要になります。1つはアプリケーションごとに。」
現在私がやりたいのは猿の道具のようなものです。画面上でランダムにアクションを実行して、アプリケーションの機能を徹底的にトリガーしたいと思います。トラバースプロセス中に、プログラムフローがアプリケーションから出て、JUnitまたはRobotiumがプログラムの制御を失うことがあります。プログラムフローをアプリケーションに戻す方法はありますか?または、複数のアプリケーションを同時に制御できる方法はありますか?
ありがとう!
android - 私のアプリで問題が発生しているデバイスはどれですか
だから私の問題は単純です。私は本当にクールなアプリを開発し、それは私のデバイスでうまく機能しますが、他のデバイスでは機能しないことを知っています。
特定のデバイスで発生している問題を特定するのに役立つ分析、ダッシュボード、APIなどはありますか?
junit - Androidテストプロジェクトですべてのテストを実行できないのはなぜですか?
今、アプリケーションをテストするために、別のテスト プロジェクトで Android テストをコーディングします。多くのテストケースとクラスをコーディングしました。今、私はテストスーツを書きたいです。すべてのテストを実行しますが、例外があります。コードは次のとおりです。
例外は次のとおりです。
junit.framework.AssertionFailedError: com.netqin.myproject.test.alltest.AllTest にテストが見つかりません android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:190) で android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:175) ) android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:555) で android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1584) で
何が間違っているのか、私は理由を見つけることができません。どんな助けでも感謝しています。
android - Android UIAutomator コードを実行すると、エラーが表示されます
Android UIAutomator コードを実行すると、次のエラーが表示されます。
INSTRUMENTATION_RESULT: shortMsg=java.lang.RuntimeException
INSTRUMENTATION_RESULT: longMsg=com.android.ui.testing
INSTRUMENTATION_CODE: 0
developer.android.com にあるサンプル コードを実行したところ、
このエラーを解決するにはどうすればよいですか?
以下に添付されたログ: