пятница, 4 ноября 2016 г.

Что нового в версии 5.3: Автоматизированные тесты с помощью Nightwatch.js

В проект Orckestra CMS Foundation на GitHub'е была добавлена поддержка фреймворка для создания и выполнения автоматизированных тестов Nightwatch.js.

В проекте системы он был расширен командами для специфических задач, выполняемых в админке системы, например, открыть раздел такой-то (selectPerspective), выполнить команду такую-то на таком-то элементе дерева (selectTreeNodeAction).

В проекте есть уже несколько написанных тестов, которые вы можете запустить на выполнение тоже, если у вас настроена среда для выполнения тестов Nightwatch.js (об этом - ниже).

Кроме того, в отдельной ветке e2e-testing добавляются новые тесты, которые, вероятно, будут в будущем слиты с главной веткой dev.

Обращаю ваше внимание, что фреймворк доступен только в ветках исходного кода. В готовых дистрибутивах (релизах) - его нет.





Для того, чтобы запустить существующие тесты вам нужно скачать исходники ветки dev (или e2e-testing) и выполнить шаги описанные в этой инструкции (англ.).

Вкратце, шаги такие:
  1. Загрузите последнюю версию для разработчиков dev.
  2. Откройте ее в Visual Studio и выполните сборку решения (там 3 проекта).
  3. Далее в PowerShell перейдите в папку /Website в решении и выполните команду grunt build. Это скомпилирует нужные CSS-файлы.
    1. Если у вас не установлен grunt, установите его npm install -g grunt.
    2. Вместо команды grunt build в PowerShell, можно в Visual Studio вызвать Task Runner на файле gruntfile.js (правый клик) проекте Website, и в нем запустить команду build.
  4. Установите  Node.js:
    1. Если у вас не установлен Node.js, скачайте с официального сайта и установит его.
    2. Если у вас Node.js установлен, то проверьте его версию: в PowerShell выполните команду node -v. Вам нужна версия выше 4.4. Если это не так, установите последнюю версию.
  5. Теперь установите сам Nightwatch, выполнив в PowerShell команду npm install -g nightwatch.
  6. Также не помешает установить последнюю версию chromedriver выполнив команду npm install --save-dev chromedriver@latest в папке /Website
    1. Тесты по умолчанию запускаются в браузере Google Chrome. А так как последний обновляется довольно часто, есть шанс, что на момент написания этого сообщения, chromedriver  на сайте будет уже устаревшим и не работающим.
  7. Запустите сайт в WebMatrix. По умолчанию сайт должен быть запущен по адресу http://localhost:8080 (8080 - порт по умолчанию).
    1. Так как WebMatrix запустит его по другому порту:
      1. или в самом WebMatrixe измените порт на 8080 и перезапустите сайт
      2. или в файле nightwatch.json (в корне решения) поменяйте порт на нужный вам "launch_url" : "http://localhost:8080".
    2. Откройте сайт по этому адресу и удостоверьтесь, что сайт открывается, и запускается мастер начальной установки Orckestra CMS. Шаги мастера выполнять не нужно - для этого есть тест.
  8. Наконец, в PowerShell выполните команду nightwatch в корневой папке решения (где папка/Website будет подпапкой).
И в течении нескольких минут вы будете наблюдать как выполняются автоматизированные тесты.


Набор тестов там пока ограничен и не охватывает все разделы.

После того, как выполнится последний тест, в PowerShell появится сообщение о том, сколько утверждений (assertions) было удовлетворено и сколько времени ушло на выполнение тестов.


В папке /Website/test/e2e находится все, что связано с тестами на Orckestra CMS. В подпапке /suite находятся сами группы тестов.

В подпапке /commands - специфические команды, расширяющие Nightwatch API, адаптируя его команды к специфике работы в админке Orckestra CMS. Если вы будет писать свои тесты, имеет смысл изучить эти команды, они сильно упростят вам жизнь.

Также в подпапке /pageObjects находятся "объекты страницы". И команды, и объекты страницы - это понятия самого Nightwatch. Они просто расширяют его возможности и упрощают написание тестов. По ним есть стандартная документация Nightwatch.

В подпапке /ApiLang находится определения для текстового редактора Notepad++ для команд, добавленных в подпапке /commands. Там же - инструкция по установке этого определения для Notepad++. Это если вы будет писать свои тесты в Notepad++.

Что касается выполнения тестов, то сначала будут выполнятся тесты которые пронумерованы, в порядке нумерации, далее - все остальные (в алфавитном порядке).

Можно также запускать отдельные тесты, группы тестов, тесты по тэгам и т.п. Все это описано в стандартной документации Nightwatch.js.

На этом пока все. Может быть стоит посвятить еще одно-два сообщения теме Nightwatch в Orckestra CMS.



Ссылки по теме:

Комментариев нет:

Отправить комментарий