Есть ли способ написать модульные тесты для расширений GNOME-Shell?

В настоящее время я пытаюсь реорганизовать кодовую базу существующего расширения gnome-shell. Частично это связано с внедрением модульных тестов, так как не использовать тесты в 2016 году кажется довольно небрежным.

После некоторой возни мне удалось настроить работающий конвейер node-phantomjs-qunit, который действительно куда-то меня привел.

Однако расширения оболочки используют специальную imports-механику, а также некоторые поправки для создания классов (например, String.format через GJS), которые делают невозможным фактическое тестирование этих файлов в изолированной среде, то есть: не внутри оболочка.

Итак, мой вопрос: действительно ли невозможно писать модульные тесты для расширений оболочки?


person Elbenfreund    schedule 21.08.2016    source источник
comment
Не совсем невозможно сделать, но определенно не стоит усилий. Небольшая основная группа разработчиков оболочки GNOME продолжает изменять внутренние API, что на практике означает, что часто приходится переделывать расширение всякий раз, когда выпускается новая версия оболочки GNOME.   -  person fpmurphy    schedule 21.08.2016
comment
@fpmurphy1 спасибо за отзыв. Я хорошо осведомлен о быстрых изменениях API, но все же я думаю, что было бы предпочтительнее иметь некоторое базовое покрытие. Хотя бы для того, чтобы получить раннее предупреждение, если что-то сломается.   -  person Elbenfreund    schedule 22.08.2016


Ответы (1)


Я проделал некоторую работу с модульными тестами с расширениями оболочки gnome, взгляните на это расширение для полного примера:

https://github.com/emerinohdz/power-alt-tab

Я использовал webpack с babel (необязательно) и GJS. Он даже построен с использованием Travis CI.

Я включил тупой полифилл для нужных мне частей GS и предоставил альтернативу для обработки модулей, используя импорт ES6 вместо механизма импорта GS по умолчанию. Никакие интеграционные тесты сейчас невозможны, только модульные тесты, но, по крайней мере, вы контролируете большую часть своей кодовой базы.

person emerino    schedule 27.11.2017
comment
Это даже не устанавливает Gnome-Shell, не говоря уже о том, чтобы запускать какие-либо интеграционные тесты против него... - person Cerin; 18.03.2019
comment
ОП запросил модульные тесты, и это модульное тестирование расширения (есть даже комментарий, который я разместил к ответу о том, что интеграционные тесты невозможны), если вы ищете интеграционные тесты, сделайте это и дайте нам знать, как это происходит! - person emerino; 19.03.2019