使用Android Monkey进行测试..保留在首选项屏幕上?

Coi*_*ins 5 android

我开发了一个应用程序,并一直使用Monkey来测试它.

我的应用程序有一个主屏幕和一个打开首选项屏幕的菜单选项.我已经意识到的一件事是,一旦猴子打开我的偏好屏幕,它往往会在偏好活动中保持很长时间.它退出的唯一时间是它重新启动我的整个活动,一旦它进入首选项活动,它就会再次停留在那里,大力测试我的偏好活动而不会退出它.

这导致我的偏好活动从猴子完全锻炼,但我的主要活动没有得到它的太多关注.我知道猴子的行为是完全随机的,但可能是因为我的偏好活动有问题吗?来自猴子的重复测试表明这种行为是一致的.

以下是我的偏好活动的代码:

    public class MyPreferences extends PreferenceActivity {
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);

            addPreferencesFromResource(R.xml.my_preference);
        }
   }
Run Code Online (Sandbox Code Playgroud)

而我的宣言:

    <activity android:name="com.myapp.android.testapp.MyPreferences" 
    android:label="@string/preference_activity_title" 
    android:configChanges="orientation|keyboard|keyboardHidden" 
    android:screenOrientation="portrait"/>
Run Code Online (Sandbox Code Playgroud)

哦,我用以下代码运行猴子:

    adb shell monkey -p com.myapp.android.testapp -v 100000
Run Code Online (Sandbox Code Playgroud)

Com*_*are 5

您可能只有一条路径PreferenceActivity——返回按钮。因此,在 Monkey 碰巧碰到 BACK 按钮之前,Monkey 将测试您的PreferenceActivity.

解决方法之一是添加CATEGORY_MONKEY到您的主要活动要测试(除了你的CATEGORY_LAUNCHER一个),并使用-c开关不时。这将使猴子保持在您选择的活动中。只需将该类别从PreferenceActivity.

您可以尝试增加--pct-syskeys,这将增加按下 BACK 的几率,尽管这会影响您的所有活动,而不仅仅是您的PreferenceActivity.