在Android Espresso中手动关闭应用程序后重新启动测试执行

时间:2017-08-24 19:28:54

标签: android android-espresso

我正在寻找重新启动应用程序的解决方案,同时我的应用程序最小化并关闭(从后台删除)。有没有办法在测试执行时验证活动是否正在运行?如果活动已完成,则测试套件应识别并从后台重新启动活动。

我尝试过自定义ActivityTestRule并重新启动,但我的问题是应用程序只有在下一次测试执行后才会重新启动。因为我需要在同一测试中立即重新启动。

通过其他类似的查询,我尝试了以下解决方案,但它仍然不符合我的要求。

package android.support.test.rule;

public class ControlledActivityTestRule<T extends Activity> extends ActivityTestRule<T> {

public ControlledActivityTestRule(Class<T> activityClass) {
    super(activityClass, false);
}

public ControlledActivityTestRule(Class<T> activityClass, boolean initialTouchMode) {
    super(activityClass, initialTouchMode, true);
}

public ControlledActivityTestRule(Class<T> activityClass, boolean initialTouchMode, boolean launchActivity) {
    super(activityClass, initialTouchMode, launchActivity);
}

public void finish() {
    finishActivity();
}

public void relaunchActivity(int seconds) {
    finishActivity();
    sleep(seconds);
    launchActivity();
    sleep(seconds);
}

public void launchActivity() {
    launchActivity(getActivityIntent());
}

public void sleep(int seconds) {
    if (seconds > 0) {
        try {
            Thread.sleep(seconds * 1000);
        } catch (Exception ex) {
        }
    }
}
}

在我的测试方法中调用launchActivity()。

0 个答案:

没有答案