使用startInstrumentation测试Android应用程序

时间:2012-12-10 15:03:02

标签: android android-manifest instrumentation

我想在测试的应用内部使用Instrumentation界面来检测我的应用。 我有一个自定义活动,我的每个活动都延伸。在那里我想开始检测以获取有关应用程序的信息:

public class BxActivity extends Activity {
@Override
protected void onResume() {
    super.onResume();
    ...
    boolean instru = startInstrumentation(new ComponentName(BxActivity.this, InstrumentationRobot.class), null, null);

Imho应该使用InstrumentationRobot.class中的检测代码重新启动应用程序。它位于相同的Android项目和包中。

public class InstrumentationRobot extends Instrumentation {
@Override
public void onCreate(Bundle arguments) {
    super.onCreate(arguments);
    Log.v("InstrRobot", "Hello from Robot");
    start();
}

我已经将清单添加到清单中了:

 <instrumentation
        android:name="InstrumentationRobot" (class in the same pkg)
        android:targetPackage="my.package.name" />
</application>

这是我的仪器的正确清单代码,所以我的小机器人向我打印“你好”。

谢谢,soeren

1 个答案:

答案 0 :(得分:2)

我找到了解决方案并使用正确的代码更新了我的问题。 错误发生在清单文件中。

我删除了

<uses-library android:name="android.test.runner" />
如果检测类与应用程序本身位于同一个包和.apk文件中,则

标记和检测类名称不能以点开头。

instrumentation标签也必须是清单的直接子项。