Android Espresso:按顺序运行多个测试

 歼鸡队队长_512 发布于 2023-01-10 00:31

我正在尝试使用Espresso for Android进行一系列测试.看来,在运行之间,活动不会被关闭.无论一次测试后的应用程序状态如何,它都会进行下一次测试.

我需要从一个全新的应用程序开始运行我的每个测试.在Robotium中,这是使用tearDown()方法中的solo.finishOpenedActivites()来处理的.
http://robotium.googlecode.com/svn/doc/com/robotium/solo/Solo.html#finishOpenedActivities()

如何用Espresso完成这项工作?

1 个回答
  • 错误报告中提供的修复程序的问题是,这只会在完成整个套件时执行.如果您希望在每次测试后都有一个干净的活动堆栈,则需要手动执行某些操作.我写了一个小类,与上面提到的票证上的修复程序非常相似,但可以在任何时间点执行.

    import android.app.Activity;
    import android.os.Handler;
    import android.os.Looper;
    import com.google.android.apps.common.testing.testrunner.ActivityLifecycleMonitor;
    import com.google.android.apps.common.testing.testrunner.ActivityLifecycleMonitorRegistry;
    import com.google.android.apps.common.testing.testrunner.Stage;
    import java.util.ArrayList;
    import java.util.EnumSet;
    import java.util.List;
    
    
    public final class ActivityFinisher implements Runnable {
    
        public static void finishOpenActivities() {
            new Handler(Looper.getMainLooper()).post(new ActivityFinisher());
        }
    
        private ActivityLifecycleMonitor activityLifecycleMonitor;
    
        public ActivityFinisher() {
            this.activityLifecycleMonitor = ActivityLifecycleMonitorRegistry.getInstance();
        }
    
        @Override
        public void run() {
            final List<Activity> activities = new ArrayList<Activity>();
    
            for (final Stage stage : EnumSet.range(Stage.CREATED, Stage.STOPPED)) {
                activities.addAll(activityLifecycleMonitor.getActivitiesInStage(stage));
            }
    
            for (final Activity activity : activities) {
                if (!activity.isFinishing()) {
                    activity.finish();
                }
            }
        }
    }
    

    2023-01-10 01:06 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有