spoon框架是一个很棒的用例驱动跟测试结果生成加工的框架。但在使用spoon-client时,传入参数需要被测应用的activity实例,跨应用测试会很受限(当然也可能是因为我对android不熟导致的,在使用uiautomator2时,我只能拿到被测应用的activity名,但没办法拿到实例)。这里提供一种解决办法,就是直接修改spoon框架的源码,仅供参考。

通过阅读spoon框架源码可以发现,spoon-client提供screenshot的api来截图,截图后会保存在包名路径下,而spoon-runner则会在报告生成时,去读对应路径下的图片文件。

  public static File screenshot(Activity activity, String tag, String testClassName,
String testMethodName) {
if (!TAG_VALIDATION.matcher(tag).matches()) {
throw new IllegalArgumentException("Tag must match " + TAG_VALIDATION.pattern() + ".");
}
try {
File screenshotDirectory =
obtainScreenshotDirectory(activity.getApplicationContext(), testClassName,
testMethodName);
String screenshotName = System.currentTimeMillis() + NAME_SEPARATOR + tag + EXTENSION;
File screenshotFile = new File(screenshotDirectory, screenshotName);
takeScreenshot(screenshotFile, activity);
Log.d(TAG, "Captured screenshot '" + tag + "'.");
return screenshotFile;
} catch (Exception e) {
throw new RuntimeException("Unable to capture screenshot.", e);
}
}

因此可以把takeScreenshot(screenshotFile, activity)直接用Runtime. getRuntime().exec("screencap -p " +screenshotFile);替换后记得用Chmod修改file的可读权限,不然文件没办法pull到服务器。

最新文章

  1. jQuery实战
  2. 控制器中获取store
  3. WordPress学习
  4. 论文笔记之:Learning Multi-Domain Convolutional Neural Networks for Visual Tracking
  5. 最长公共子序列(LCS问题)
  6. 关于c++中的引用
  7. 深入理解Azure自动扩展集VMSS(3)
  8. webpack配合vue.js实现完整的单页面demo
  9. Matlab基础知识
  10. ZOJ 2412 Farm Irrigation(DFS 条件通讯块)
  11. Unity3D安装破解教程(以Unity5.3.4为例)(转)
  12. MS SQL自定义函数判断是否正整数
  13. Python heapq模块
  14. Python2的object和type
  15. Java编程的逻辑 (19) - 接口的本质
  16. linux 查找文件或者服务
  17. 『Collections』Counter计数
  18. 用node研究axios前后端交互状态码规则
  19. Vue学习笔记一:使用vue-cli 创建开发环境
  20. linux环境下搭建MySQL

热门文章

  1. web开发调试神器——fiddler的使用
  2. java继承覆盖与向上转型,权限
  3. iOS UIGestureRecognizer与UIMenuController(内容根据iOS编程)
  4. xcode7.1新建项目等问题
  5. 如何实现一个php框架系列文章【6】mysql数据库
  6. dpkg:处理软件包dradis (--configure)时出错
  7. 数据库表结构设计方法及原则(li)
  8. 学习笔记 MYSQL报错注入(count()、rand()、group by)
  9. ArcGIS 地图性能优化系列一
  10. React Native 之 View使用