我刚开始研究 Android 仪器测试,但在执行测试时遇到了一些问题。这是我尝试过的:
使用 Android Studio 和 gradle,我在src/instrumentTest/java/
. 这里是:
package at.example.test;
import android.test.ActivityInstrumentationTestCase2;
import android.view.View;
import at.example.activity.MainActivity;
public class BasicAppTestCase extends ActivityInstrumentationTestCase2<MainActivity> {
private MainActivity activity;
public BasicAppTestCase() {
super(MainActivity.class);
}
@Override protected void setUp() throws Exception {
super.setUp();
activity = getActivity();
}
public void testAppHomeButtonExists() {
View homeButton = activity.findViewById(android.R.id.home);
assertNotNull("Home button does not exist", homeButton);
}
}
接下来,我通过右键单击我的项目并选择Run 'All Tests'
. Android Studio为我的项目执行任务,并将这两个文件安装assembleDebug
到我的测试设备上。assembleTest
apk
之后,该应用程序在我的测试设备上成功启动。该setUp()
方法正在执行(我通过将失败的断言放入方法以及 using 来检查这一点logcat
),然后测试执行挂起,显示Running tests...
为testAppHomeButtonExists
当前正在执行。
在我通过最小化应用程序按下主页按钮或打开应用程序切换器来更改活动状态之前,测试执行不会继续。然后测试方法testAppHomeButtonExists
被执行并且(取决于方法主体)成功或失败。同样,我使用断言调用和logcat
输出测试了这种行为。
更新:
这是TestRunner
记录到我设备的 logcat 流的内容:
11-11 15:34:59.750 24730-24748/at.example.activity I/TestRunner﹕ started: testAppHomeButtonExists(BasicAppTestCase)
在我停止应用程序之前,没有更多的记录。停止活动后,将记录以下内容:
11-11 15:35:05.205 24730-24748/at.example.activity I/TestRunner﹕ finished: testAppHomeButtonExists(BasicAppTestCase)
11-11 15:35:05.205 24730-24748/at.example.activity I/TestRunner﹕ passed: testAppHomeButtonExists(BasicAppTestCase)
难道我做错了什么?我错过了什么吗?什么可能导致这种行为?
提前致谢!