2012-04-23 28 views
11

Tôi đang cố gắng kiểm tra ứng dụng Android của mình bằng cách sử dụng công cụ monkey monkey.cách lọc các Hoạt động cụ thể được khỉ thử nghiệm bằng android.intent.category?

Theo mặc định công cụ này sẽ thực hiện các hoạt động có mục Intent.CATEGORY_LAUNCHER hoặc Intent.CATEGORY_MONKEY theo 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"/> 

Tôi không muốn MySettings để được kiểm tra bởi Khỉ.

Trong trường hợp thực sự của tôi, điều này là do hoạt động đó thực hiện đăng xuất. Vì vậy, sau khi đăng xuất, không có cách nào để đăng nhập lại để tiếp tục kiểm tra phần còn lại của màn hình, đó là toàn bộ ý tưởng của bài kiểm tra.

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

Phải là từ chối thay vì cho phép tôi đoán. Bất kỳ ý tưởng làm thế nào để tránh những con khỉ để có được vào các hoạt động tôi không muốn?

+0

Bạn đã thử sử dụng '-c' để chỉ định gói nào bạn muốn? Nó có thể là mặc định không hoạt động, nhưng tự xác định chúng (ngay cả khi, cuối cùng, các giá trị giống như các giá trị mặc định) hoạt động. Nếu điều đó không hiệu quả, điều này giống như là lỗi tài liệu hoặc lỗi mã hóa 'khỉ'. – CommonsWare

+0

Có '-c android.intent.category.LAUNCHER -c android.intent.category.MONKEY' nhưng kết quả chính xác giống nhau. Tôi cũng đã cố gắng sử dụng một danh mục khác 'android.intent.category.TEST' trong các mô-đun mà tôi muốn chỉ tập trung (tôi đã thêm vào tệp kê khai và tôi đã sử dụng tùy chọn -c), nhưng một lần nữa, cùng một kết quả: ( – felipe

+0

Bạn có bao giờ tìm thấy một giải pháp cho điều này? Cùng một vấn đề ở đây – ben

Trả lời

4

Con đường tôi đã xử lý này là bằng cách thêm đoạn mã sau vào onCreate (...) trong các hoạt động mà bạn không muốn con khỉ để kiểm tra:

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

Bằng cách đó hoạt động ngay lập tức thoát ra nếu nó đang được thử nghiệm bởi một con khỉ.

+0

làm việc cho tôi. :) –

Các vấn đề liên quan