2012-04-23 66 views
11

我試圖用猴子練習工具來強調測試我的android應用程序。如何過濾猴子使用android.intent.category測試的特定活動?

默認情況下,該工具將根據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"/> 

我不想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 
.. 

應該拒絕而不是讓我猜的。任何想法如何避免猴子進入我不想要的活動?

+0

你有沒有試過使用'-c'來指定你想要的包?這可能是默認值不起作用,但自己指定它們(即使最後的值與默認值相同)也可以使用。如果這沒有幫助,這感覺就像文檔錯誤或「猴子」編碼錯誤。 – CommonsWare 2012-04-23 17:45:28

+0

是'-c android.intent.category.LAUNCHER -c android.intent.category.MONKEY',但結果完全相同。我也嘗試在我只想關注的模塊中使用不同的類別'android.intent.category.TEST'(我添加到清單中,我也使用-c選項),但是同樣的結果:( – felipe 2012-04-23 17:52:14

+0

)有沒有找到解決這個問題?在這裏同樣的問題 – ben 2013-01-05 00:04:59

回答

4

我已經處理,這是通過將活動的以下內容的onCreate(...),你不希望猴子測試方式:

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

這樣的活動立即如果猴子正在測試它,則退出。

+0

適合我。:) – 2014-06-19 16:13:00

相關問題