Automated tests 集成测试Gnome外壳扩展的工具?

Automated tests 集成测试Gnome外壳扩展的工具?,automated-tests,integration-testing,ui-automation,gnome-shell,gnome-shell-extensions,Automated Tests,Integration Testing,Ui Automation,Gnome Shell,Gnome Shell Extensions,是否有一个工具可以帮助自动化Gnome外壳扩展的集成测试 在web开发中,通过编程方式与web浏览器交互并确认功能,使用类似于模拟人机交互的工具是很常见的 Gnome和GNOMEShell中的脚本交互有什么相似之处吗 我维护一个开源的Gnome外壳扩展,其中大部分功能都是以面板中公开的GUI元素的形式提供的。不幸的是,用户提交的bug修复通常包含回归。一个主要的痛点是新的Gnome版本,这些版本很频繁,并且经常包含向后不兼容的更改,其影响可能很微妙 我目前有一些最低限度的自动化测试,以确认安装过

是否有一个工具可以帮助自动化Gnome外壳扩展的集成测试

在web开发中,通过编程方式与web浏览器交互并确认功能,使用类似于模拟人机交互的工具是很常见的

Gnome和GNOMEShell中的脚本交互有什么相似之处吗

我维护一个开源的Gnome外壳扩展,其中大部分功能都是以面板中公开的GUI元素的形式提供的。不幸的是,用户提交的bug修复通常包含回归。一个主要的痛点是新的Gnome版本,这些版本很频繁,并且经常包含向后不兼容的更改,其影响可能很微妙

我目前有一些最低限度的自动化测试,以确认安装过程的工作,但它没有捕捉到许多功能错误。所有真正的测试都必须手动完成,这非常繁琐和耗时,即使测试的性质并不复杂。测试Gnome的新版本也很困难,因为这需要在系统范围内安装它,这通常是不实际的

为了加快开发速度并减少我自己和其他志愿者测试人员的工作量,我想用Docker之类的工具编写一些自动化测试,在特定版本的Gnome中安装扩展,重新启动Gnome外壳,确认GUI元素存在,单击按钮,确认出现首选项对话框,等等


这可能吗?

简短的答案还没有

GNOMEShell中有一个用于运行基本语法、linting和打包测试的插件。在顶部图标扩展中使用了一个示例

Evan Welsh有一个项目可以从GObject内省()生成类型脚本定义。如果GNOMEShell是用TypeScript注释记录的,那么它可以被删除,您可以对扩展运行更全面的静态分析。这可能会覆盖版本之间95%的中断

就自动化GUI测试而言,它是存在的,尽管如果它与GNOME Shell一起工作,我会感到惊讶。发行版的目标似乎是OpenQA(例如),但我不知道有人在较小规模上使用它


我相信直到最近,上游GNOME才开始提供完整的、普通的VM映像(请参阅)。再说一次,我还不知道有人在使用这些工具进行扩展的自动测试。

这正是我所担心的,但是谢谢你的总结。Dogtail看起来很有趣,即使还没有人使用它进行扩展测试。