問題タブ [robotium]

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

android - androidrobotiumでオプションを記録して実行する

私はアンドロイドに非常に新しいです。Robotiumフレームワークはどのように使用する必要がありますか?その中に記録と再生のオプションがありますか、それとも手動でテストケースを作成する必要がありますか。すばやく記録して再生するrobotium用のツールを入手してください

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

android - Android 用の Robotium テストケース

すべて..私はJUnit TestCasesが初めてです。ソースコードを使用せずに、android .apk で junit テストケースを作成したいと考えています。ソースコードがないからです。

私を挑発してください。事前に助けてくれてありがとう。

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

android - proguard によってコンパイルおよび難読化されたアプリケーションからビュー ID を取得する方法は?

コンパイルされ難読化されたアプリケーションのテストを書いています。現在、View IDフォームを使用してアクセスしています/res/values/public.xml

このアプローチは、ユーティリティ アプリケーションが再コンパイルされない場合にのみ有効です。

Idファイルを持たずにビューにアクセスする方法はありRますか?

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

android - Robotiumのパラメータ化

私はrobotiumにデータベースを実装して、パラメータ化してデータ指向にすることを試みてきましたが、完全に失われました。ガイドしてください。私のrobotiumコードは、以下に記載されています。sqliteとのデータベース接続を開く方法をガイドしてください。

どんなに小さなガイダンスでも大いに役立ちますありがとうございます

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

android - Robotium.clickOnMenuItem() の問題

Robotium にこの呼び出しを行うと、次のようになります。

時々、有名なエラー トレースが表示されます。

09-19 22:27:23.647: エラー/WindowManager(20662): android.view.WindowLeaked: アクティビティ test.com.activities.ListActivity がウィンドウ com.android.internal.policy.impl.PhoneWindow$DecorView@461d4660 をリークしました。最初にここに追加されました 09-19 22:27:23.647: ERROR/WindowManager(20662): at android.view.ViewRoot.(ViewRoot.java:253) 09-19 22:27:23.647: ERROR/WindowManager(20662): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:148) 09-19 22:27:23.647: エラー/WindowManager(20662): android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91) 09-19 22: 27:23.647: エラー/WindowManager(20662): android.view.Window$LocalWindowManager.addView(Window.java:424) 09-19 22:27:23.647: エラー/WindowManager(20662): android.app.Dialog .show(Dialog.java:241) 09-19 22:27:23.647: エラー/WindowManager(20662): テスト時。com.activities.ListActivity$Sincronizacao.onPreExecute(ListActivity.java:272) 09-19 22:27:23.647: エラー/WindowManager(20662): android.os.AsyncTask.execute(AsyncTask.java:391) 09-19 22:27:23.647: エラー/WindowManager(20662): test.com.activities.ListActivity.onOptionsItemSelected(ListActivity.java:224) 09-19 22:27:23.647: エラー/WindowManager(20662): android.app で.Activity.onOptionsItemSelected(Activity.java:2313) 09-19 22:27:23.647: エラー/WindowManager(20662): android.app.Activity.onMenuItemSelected(Activity.java:2201) 09-19 22:27:23.647 : エラー/WindowManager(20662): com.android.internal.policy.impl.PhoneWindow.onMenuItemSelected(PhoneWindow.java:740) 09-19 22:27:23.647: エラー/WindowManager(20662): com.android で。 internal.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:143) 09-19 22:27:23.647:エラー/WindowManager(20662): com.android.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:855) 09-19 22:27:23.647: エラー/WindowManager(20662): com.android.internal .view.menu.IconMenuView.invokeItem(IconMenuView.java:538) 09-19 22:27:23.647: エラー/WindowManager(20662): com.android.internal.view.menu.IconMenuItemView.performClick(IconMenuItemView.java: 142) 09-19 22:27:23.647: エラー/WindowManager(20662): android.view.View$PerformClick.run(View.java:8818) 09-19 22:27:23.647: エラー/WindowManager(20662) : android.os.Handler.handleCallback(Handler.java:587) 09-19 22:27:23.647: エラー/WindowManager(20662): android.os.Handler.dispatchMessage(Handler.java:92) 09-19 で22:27:23.647: エラー/WindowManager(20662): android.os.Looper.loop(Looper.java:143) 09-19 22:27:23.647:エラー/WindowManager(20662): android.app.ActivityThread.main(ActivityThread.java:4701) 09-19 22:27:23.647: エラー/WindowManager(20662): java.lang.reflect.Method.invokeNative(Nativeメソッド) 09-19 22:27:23.647: エラー/WindowManager(20662): java.lang.reflect.Method.invoke(Method.java:521) 09-19 22:27:23.647: エラー/WindowManager(20662) : com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860) 09-19 22:27:23.647: エラー/WindowManager(20662): com.android.internal.os.ZygoteInit.main で(ZygoteInit.java:618) 09-19 22:27:23.647: エラー/WindowManager(20662): dalvik.system.NativeStart.main(ネイティブ メソッド) 09-19 22:27:24.209: エラー/AndroidRuntime(20662) : 致命的な例外: メイン 09-19 22:27:24.209: エラー/AndroidRuntime(20662): java.lang.IllegalArgumentException:ビューがウィンドウ マネージャーに接続されていません 09-19 22:27:24.209: エラー/AndroidRuntime(20662): android.view.WindowManagerImpl.findViewLocked(WindowManagerImpl.java:355) 09-19 22:27:24.209: エラー/AndroidRuntime( 20662): android.view.WindowManagerImpl.removeView(WindowManagerImpl.java:200) 09-19 22:27:24.209: エラー/AndroidRuntime(20662): android.view.Window$LocalWindowManager.removeView(Window.java:432) ) 09-19 22:27:24.209: エラー/AndroidRuntime(20662): android.app.Dialog.dismissDialog(Dialog.java:278) 09-19 22:27:24.209: エラー/AndroidRuntime(20662): Android で.app.Dialog.access$000(Dialog.java:71) 09-19 22:27:24.209: エラー/AndroidRuntime(20662): android.app.Dialog$1.run(Dialog.java:111) 09-19 22 :27:24.209: エラー/AndroidRuntime(20662): android.app.Dialog.dismiss(Dialog.java:268) 09-19 22:27:24.209:エラー/AndroidRuntime (20662): android.app.Dialog.cancel (Dialog.java:951) 09-19 22:27:24.209: エラー/AndroidRuntime (20662): test.com.activities.ListActivity$Sincronizacao.onPostExecute で(ListActivity.java:331) 09-19 22:27:24.209: エラー/AndroidRuntime (20662): android.os.AsyncTask.finish(AsyncTask.java:417) 09-19 22:27:24.209: エラー/AndroidRuntime (20662): android.os.AsyncTask.access$300(AsyncTask.java:127) 09-19 22:27:24.209: エラー/AndroidRuntime(20662): android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java で:429) 09-19 22:27:24.209: エラー/AndroidRuntime(20662): android.os.Handler.dispatchMessage(Handler.java:99) 09-19 22:27:24.209: エラー/AndroidRuntime(20662): android.os.Looper.loop(Looper.java:143) 09-19 22:27:24.209: エラー/AndroidRuntime(20662): android.app.ActivityThread で。main(ActivityThread.java:4701) 09-19 22:27:24.209: エラー/AndroidRuntime(20662): java.lang.reflect.Method.invokeNative(ネイティブ メソッド) 09-19 22:27:24.209: エラー/AndroidRuntime (20662): java.lang.reflect.Method.invoke(Method.java:521) 09-19 22:27:24.209: エラー/AndroidRuntime(20662): com.android.internal.os.ZygoteInit$MethodAndArgsCaller で。実行 (ZygoteInit.java:860) 09-19 22:27:24.209: エラー/AndroidRuntime(20662): com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 09-19 22:27: 24.209: エラー/AndroidRuntime(20662): dalvik.system.NativeStart.main(ネイティブ メソッド) で521) 09-19 22:27:24.209: エラー/AndroidRuntime(20662): com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860) 09-19 22:27:24.209: エラー/ AndroidRuntime(20662): com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 09-19 22:27:24.209: エラー/AndroidRuntime(20662): dalvik.system.NativeStart.main(Native方法)521) 09-19 22:27:24.209: エラー/AndroidRuntime(20662): com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860) 09-19 22:27:24.209: エラー/ AndroidRuntime(20662): com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 09-19 22:27:24.209: エラー/AndroidRuntime(20662): dalvik.system.NativeStart.main(Native方法)

しかし、このようにネイティブに呼び出しを行うと (メニュー項目は 3 番目の項目です):

テストを何度実行してもエラーは発生しません。なぜ私はその振る舞いをしているのですか?

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

android - マルチデバイスをサポートするAndroid用の動的インストルメンテーションツール(理想的にはPythonまたはJython)を知っていますか?

私のCIインフラストラクチャでは、コントローラーマシン(Linux)から2台(またはそれ以上)のAndroidフォン間で複雑なテストを自動的に展開して実行する必要があります。

これまでのところ、Androidの単体テストと組み合わせたAndroidのmonkeyrunnerは、満足のいく解決策ではありません。

  • Monkeyrunnerは、リモートアプリから単一のメソッドを呼び出さず、IDでUIコンポーネントをアドレス指定できません
  • ActivityInstrumentationTestCase2を使用してJavaテストケースを作成するのはコストがかかりすぎ(loC)、2つのデバイス間で対話するための十分な柔軟性を提供しません
  • robotium.orgは正しい方向への一歩ですが、Java(動的ではない)であり、まだマルチデバイスではありません
  • 私が見つけた他のすべてのソリューションでは、動的スクリプティングに対するインタラクティブなテストは許可されていません

なにか提案を?

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

robotium - どうして [] を明示的に robotium に設定する必要がありますか?

このQnAで述べたように、robotium の一部の機能では、AndroidManifest.xml ファイルで anyDensity を true に設定する必要がありました。しかし、android doc には、android 1.6 以降をサポートするアプリケーションはデフォルトで true であると記載されています。では、なぜこれを明示的に設定する必要があるのでしょうか。

android:anyDensity 任意の画面密度に対応するリソースがアプリケーションに含まれているかどうかを示します。Android 1.6 (API レベル 4) 以降をサポートするアプリケーションの場合、これはデフォルトで「true」です。アプリケーションが動作するために必要であることが絶対に確実でない限り、「false」に設定しないでください。これを無効にする必要があるのは、アプリがビットマップを直接操作する場合のみです (詳細については、複数画面のサポートに関するドキュメントを参照してください)。

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

android - Eclipseで複数のプロジェクトからAndroid JUnitテストを実行するには?

Android JUnit Robotium テストを含む複数のプロジェクトを eclipse から一度に実行する方法を考えています...誰かが助けてくれることを願っています。

どうもありがとう!

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

android - AndroidAutomationのレポートを生成する方法

自動化ツールを使用して夜間に実行したいRobotiumテストケースがありますが、最初にEclipseで手動で実行せずに実行できるかどうかはわかりません。Robotiumテストケースを毎晩自動的に実行できるビルドスクリプトはありますか?さまざまなAndroidOSプラットフォーム間での互換性をテストするため、このテストケースはデバイス上で直接実行されるのが理想的です。

テストケースを自動的に実行するにはどうすればよいですか?必要なことを実行できるAndroid用のビルドスクリプトはありますか?」

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

java - ロボティウムとプライベートメソッドを使用してAndroidでスクリーンショットを撮ることができません

私は最近スクリーンショットを取得しようとしていますが、すべてのフォルダーがAPIレベル8のAndroidエミュレーターで作成されているため、無駄です。以下のコードについて言及しました。

このコードでは、メソッド takeScreenShot() はディレクトリを作成し、Android junit テストケースとして実行中に画像を保存することになっています。結果は 100% になりますが、フォルダーは作成されず、スクリーン ショットは保存されません。SD カードを使用するには、電話をルート化する必要がありますか?