Инструмент для тестирования интеграции расширений Gnome-Shell?

Есть ли инструмент, помогающий автоматизировать интеграционные тесты для расширений Gnome Shell?

В веб-разработке обычно используются такие инструменты, как Selenium, чтобы имитировать человеческое взаимодействие с помощью программное взаимодействие с веб-браузером и подтверждение функциональности.

Есть ли что-нибудь подобное для взаимодействия сценариев в Gnome и Gnome Shell?

Я поддерживаю расширение Gnome Shell с открытым исходным кодом, где большая часть функциональности представлена ​​в виде элементов графического интерфейса, отображаемых на панели. К сожалению, исправления ошибок, отправленные пользователями, часто содержат регрессии. Основной проблемой являются новые выпуски Gnome, которые являются частыми и часто содержат обратно несовместимые изменения, последствия которых могут быть незначительными.

В настоящее время у меня есть минимальное автоматическое тестирование, чтобы подтвердить, что процесс установки работает, но он не обнаруживает многих ошибок функций. Все реальные испытания должны выполняться вручную, что очень утомительно и требует много времени, даже несмотря на то, что характер тестов не сложен. Также сложно протестировать новую версию Gnome, поскольку для этого необходимо установить ее в масштабе всей системы, что часто нецелесообразно.

Чтобы ускорить разработку и снизить нагрузку на себя и других добровольных тестировщиков, я хотел бы написать несколько автоматических тестов в чем-то вроде Docker, которые устанавливают расширение в определенной версии Gnome, перезапускают Gnome Shell, подтверждают наличие элементов графического интерфейса, нажмите кнопку, подтвердите появление диалогового окна предпочтений и т. д.

Это возможно?




Ответы (1)


Краткого ответа пока нет.

Существует Dockerfile в оболочке GNOME для выполнения основных синтаксических тестов, тестов линтинга и упаковки. Пример этого используется для расширения Top Icons здесь.

У Эвана Уэлша есть проект, который может генерировать определения TypeScript из GObject Introspection (https://gitlab.gnome.org/rockon999/gi.ts). Если бы оболочка GNOME была задокументирована с аннотациями TypeScript, ее можно было бы очистить, и вы могли бы выполнять гораздо более полный статический анализ расширений. Это, вероятно, покроет 95% поломок между версиями.

Что касается автоматизированных тестов GUI, существует dogtail, хотя я был бы удивлен, если бы это сработало с GNOME Shell. Для дистрибутивов, похоже, используется OpenQA (например, Fedora), но я никого не знаю используя это в меньшем масштабе.

Я считаю, что только недавно вышестоящий GNOME начал предоставлять полные ванильные образы виртуальных машин (см. https://gitlab.gnome.org/GNOME/gnome-build-meta/pipelines). Опять же, я не знаю, чтобы кто-нибудь использовал их для автоматического тестирования расширений (пока).

person andy.holmes    schedule 11.03.2020
comment
Этого я и опасался, но спасибо за резюме. Dogtail выглядит интересно, даже если кажется, что никто еще не использует его для тестирования расширений. - person Cerin; 11.03.2020