2012-04-23 1 views
11

Ich versuche, meine Android-Anwendung mit der Affenübung Werkzeug zu testen.Wie filtert man bestimmte Aktivitäten, die von Affen mit android.intent.category getestet werden sollen?

Standardmäßig wird das Tool Aktivitäten ausüben Kategorie mit Intent.CATEGORY_LAUNCHER oder Intent.CATEGORY_MONKEY nach 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"/> 

Ich will nicht MySettings von Monkey getestet werden.

In meinem realen Fall ist dies, weil diese Aktivität die Abmeldung ausführt. Nach dem Abmelden gibt es keine Möglichkeit, sich erneut anzumelden, um den Rest der Bildschirme zu testen, was die ganze Idee des Tests ist.

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

Es sollte Ablehnung sein, anstatt zuzulassen, denke ich. Irgendeine Idee, wie man vermeidet, dass der Affe in Aktivitäten einsteigt, die ich nicht will?

+0

Haben Sie versucht, mit '-c' anzugeben, welche Pakete Sie wollen? Es kann sein, dass die Standardeinstellungen nicht funktionieren, aber sie selbst zu spezifizieren (auch wenn die Werte am Ende dieselben wie die Standardwerte sind). Wenn das nicht hilft, fühlt sich das wie ein Dokumentationsfehler oder ein Fehlercode an. – CommonsWare

+0

Ja '-c android.intent.category.LAUNCHER -c android.intent.category.MONKEY' aber genau das gleiche Ergebnis. Ich habe auch versucht, eine andere Kategorie 'android.intent.category.TEST' in den Modulen zu verwenden, die ich nur fokussieren wollte (ich fügte dem Manifest hinzu und ich benutzte auch die Option -c), aber wieder dasselbe Ergebnis :( – felipe

+0

Hast du jemals eine Lösung zu finden? Das gleiche Problem hier – ben

Antwort

4

So wie ich behandelt habe dies, indem folgende in onCreate ist (...) der Aktivitäten, die Sie den Affen zu Test nicht wollen:

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

diese Weise die Aktivität sofort tritt aus, wenn es von einem Affen getestet wird.

+0

funktioniert für mich. :) –

Verwandte Themen