Инструмент для тестирования интеграции Gnome-Shell Extensions? - PullRequest
2 голосов
/ 10 марта 2020

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

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

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

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

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

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

Возможно ли это?

1 Ответ

2 голосов
/ 11 марта 2020

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

В GNOME Shell есть Dockerfile для выполнения базового c синтаксиса, тестов linting и упаковки. Вот пример его использования для расширения Top Icons здесь .

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...