如何轻松调试 flutter 端到端测试,如时间旅行、动作日志和屏幕截图?

How to easily debug flutter end-to-end tests, such as time traveling, action logs, and screenshots?

在做Flutter端到端测试的时候,我发现调试起来很不方便。例如,对于点击、拖动和断言大量事物的 e2e 测试,当它失败时,我无法轻易知道真正导致失败的原因。可能是10步前发生的不当行为造成的。

因此,我希望我能拥有众所周知的 Flutter 测试时间旅行功能(或者,操作日志,或每一步的屏幕截图)。换句话说,通过点击按钮,我可以看到“50 步前点击该按钮时 UI 是什么样子的?”然后我可以回顾历史并轻松发现问题所在。

是否可以实现?我可以将它集成到基于 integration_test 的测试中,还是必须创建一个全新的框架?

这里是:https://github.com/fzyzcjy/flutter_convenient_test - Write and debug tests easily, with full action history, time travel, screenshots, rapid re-execution, video records, interactivity, isolation and more. (With a video demo showing GUI: https://github.com/fzyzcjy/flutter_convenient_test#-quick-demo)

具体实现可以看代码。简而言之,当检测到“点击”或“期望小部件存在”等操作时,会创建一些日志,并自动生成屏幕截图。稍后,它们可以在漂亮的 GUI 中显示。

它与 integration_test 兼容,因为我们仍在使用该框架,只是 添加 自动记录和截屏。

(免责声明:这是一个QA风格的问题,这样需要它的人就可以知道已经有一个库而不需要重新发明轮子,我是open-source库的作者)