2012-04-23 10 views
11

Sto provando a sottoporre a test la mia applicazione Android utilizzando lo strumento scimmia.come filtrare le attività specifiche da testare con monkey usando android.intent.category?

Per impostazione predefinita lo strumento eserciterà attività aventi categoria Intent.CATEGORY_LAUNCHER o Intent.CATEGORY_MONKEY in base alle 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"/> 

Non voglio MySettings da testare da Monkey.

Nel mio caso reale, questo è perché quell'attività fa il logout. Quindi dopo il logout non c'è modo di accedere nuovamente per continuare a testare il resto degli schermi, che è l'intera idea del test.

./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 
.. 

Dovrebbe essere rifiutando invece di permettere immagino. Qualche idea su come evitare la scimmia per entrare in attività che non voglio?

+0

Hai provato a usare -c per specificare quali pacchetti desideri? Può darsi che i valori predefiniti non funzionino, ma la loro specifica (anche se, alla fine, i valori sono gli stessi dei default) funziona. Se questo non aiuta, sembra un bug di documentazione o un bug di codifica "scimmia". – CommonsWare

+0

Sì '-c android.intent.category.LAUNCHER -c android.intent.category.MONKEY' ma esattamente lo stesso risultato. Ho anche provato ad usare una categoria diversa 'android.intent.category.TEST' nei moduli che volevo focalizzare solo (ho aggiunto al manifest e stavo usando l'opzione -c anche) ma ancora, stesso risultato :( – felipe

+0

mai trovare una soluzione a questo? Lo stesso problema qui – ben

risposta

4

Il modo in cui ho gestito questo è aggiungendo la seguente in onCreate (...) delle attività che non si desidera la scimmia di prova: subito

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

In questo modo l'attività esce se viene testato da una scimmia.

+0

funziona per me :) –

Problemi correlati