是否有工具可以帮助自动进行Gnome Shell扩展的集成测试?
在Web开发中,通常使用Selenium之类的工具通过与Web浏览器进行编程交互并确认功能来模拟人机交互。
在Gnome和Gnome Shell中脚本交互有什么相似之处吗?
我维护一个开源的Gnome Shell扩展,其中大多数功能都以面板中公开的GUI元素的形式出现。不幸的是,用户提交的错误修复程序通常包含回归。主要的痛点是Gnome的新版本,该版本很常见,并且经常包含向后不兼容的更改,其影响可能是微妙的。
我目前有一些最低限度的自动化测试来确认安装过程是否正常运行,但是并没有发现很多功能错误。即使测试的性质并不复杂,所有真实的测试也必须手动完成,这非常繁琐且耗时。测试新版本的Gnome也很困难,因为这要求在系统范围内安装它,这通常不切实际。
为了加快开发速度并减少本人和其他志愿者测试人员的工作量,我想在类似Docker的程序中编写一些自动化测试,以在特定版本的Gnome中安装扩展,重新启动Gnome Shell,确认GUI元素存在,单击按钮,确认出现首选项对话框,等等。
这可能吗?
答案 0 :(得分:2)
简短的答案还没有。
GNOME Shell中有一个Dockerfile,用于运行基本语法,整理和打包测试。顶部图标扩展名here使用了一个示例。
Evan Welsh的一个项目可以从GObject Introspection(https://gitlab.gnome.org/rockon999/gi.ts)生成TypeScript定义。如果GNOME Shell带有TypeScript批注,则可能会被废弃,并且您可以对扩展程序进行更全面的静态分析。这可能涵盖版本之间95%的损坏。
就自动GUI测试而言,dogtail存在,尽管如果将其与GNOME Shell配合使用我会感到惊讶。发行版似乎使用的是OpenQA(例如Fedora),但我不知道有人在较小规模上使用它。
我相信直到最近,上游GNOME才开始提供完整的原始VM映像(请参阅:https://gitlab.gnome.org/GNOME/gnome-build-meta/pipelines)。再说一次,我还不知道有人使用它们来自动测试扩展。