2012-04-23 9 views
11

サル演習ツールを使用して、私のアンドロイドアプリケーションをテストしてみようとしています。android.intent.categoryを使用して猿がテストする特定のアクティビティをフィルタする方法

デフォルトでは、このツールは、私はMySettingsは猿によってをテストすることにしたくないthe doc.

package="my.android" 

    <activity android:name=".activities.MyApp"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN"/> 
      <category android:name="android.intent.category.LAUNCHER"/> 
     </intent-filter> 
    </activity>   
    <activity android:name=".activities.MyScreen"> 
     <intent-filter> 
      <category android:name="android.intent.category.MONKEY"/> 
     </intent-filter> 
    </activity> 
    <activity android:name=".activities.MySettings"/> 

に応じてカテゴリIntent.CATEGORY_LAUNCHERまたはIntent.CATEGORY_MONKEYを持つ活動を行使します。

私の実際のケースでは、これはアクティビティがログアウトするためです。だから、ログアウトした後、テストの全体的な考え方である残りの画面をテストし続けるためにログインする方法はありません。

./adb shell monkey -p my.android -v 500 
:Monkey: seed=0 count=500 
:AllowPackage: my.android 
:IncludeCategory: android.intent.category.LAUNCHER 
:IncludeCategory: android.intent.category.MONKEY 
.. 
    // Allowing start of Intent { cmp=my.android/.activities.MySettings} in package my.android 
.. 

それはを拒否する代わりに、私は推測することができでなければなりません。どのように私はしたくない活動に猿を避けるために任意のアイデア?すぐ

if (ActivityManager.isUserAMonkey()) { finish(); }

活動その方法:

+0

'-c'を使ってあなたが望むパッケージを指定しようとしましたか?デフォルトが機能していない可能性がありますが、最終的に値がデフォルトと同じであっても、それらを自分で指定することができます。それが助けにならないなら、これはドキュメントのバグか 'monkey'コーディングのバグのように感じます。 – CommonsWare

+0

はい '-c android.intent.category.LAUNCHER -c android.intent.category.MONKEY'しかし、まったく同じ結果です。私は別のカテゴリ 'android.intent.category.TEST'をフォーカスしたいモジュールで使用しようとしました(マニフェストに追加しましたが、-cオプションも使用していました)が、同じ結果を返しました:( – felipe

+0

これまでの解決策を見つけることができますか?同じ問題がここにあります – ben

答えて

4

私はこれを処理してきた方法は、あなたがテストに猿をしたくないの活動のonCreate(...)に次のように追加することですそれが猿によって検査されている場合は終了します。

+0

私のために働く:) –

関連する問題