2012-04-23 18 views
11

maymun egzersiz aracını kullanarak android uygulamamı test etmeye çalışıyorum.android.intent.category sitesini kullanarak maymun tarafından test edilecek belirli Faaliyetleri nasıl filtreleyebilir?

Varsayılan olarak aracı ben MySettings maymun tarafından test edilecek istemiyoruz 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"/> 

göre kategorisini Intent.CATEGORY_LAUNCHER veya Intent.CATEGORY_MONKEY sahip faaliyetlerini icra edecek.

Gerçek durumumda, bunun nedeni, etkinliğin çıkış yapmasıdır. Bu yüzden çıkıştan sonra testin tüm fikri olan ekranların geri kalanını test etmek için tekrar giriş yapmanın bir yolu yoktur.

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

O sanırım izin vermek yerine, reddeden olmalıdır. İstemek istemediğim faaliyetlere girmek için maymunun nasıl önleneceği hakkında bir fikrin var mı?

+0

İstediğiniz paketleri belirlemek için '-c' kullanmayı denediniz mi? Varsayılanlar çalışmıyor olabilir, ancak bunları kendiniz belirtebilir (sonuçta, değerler varsayılanlarla aynı olsa bile). Bu yardımcı olmazsa, bu bir belge hatası veya bir "maymun" kodlama hatası gibi görünüyor. – CommonsWare

+0

Evet '-c android.intent.category.LAUNCHER -c android.intent.category.MONKEY' ama tam olarak aynı sonuç. Ben de farklı bir kategori 'android.intent.category.TEST 'kullanmak istedim modülleri sadece odaklanmak istedim (manifestoya ekledim ve -c seçeneğini kullanıyordum) ama yine, aynı sonuç :( – felipe

+0

Buna bir çözüm buldunuz mu? Aynı problem burada – ben

cevap

4

ben bu teste maymun istemiyorum faaliyetlerin (...) onCreate aşağıdaki eklemektir ele ettik yolu: Hemen

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

Bu şekilde faaliyeti Bir maymun tarafından test ediliyorsa çıkar.

+0

benim için çalışıyor. –