Skip to content

Latest commit

 

History

History

functional-tests

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Подготовка и запуск

  1. Устанавливаем python
  2. Устанавливаем virtualenv
$ pip install -U virtualenv
  1. Готовим локальный environment
$ ./prepare.sh

Если используется PyCharm удобно добавить локальный env. File -> Settings -> Project -> Шестеренка -> Добавить локальный env -> выбрать ./.env/bin/python2.7

  1. Устанавливаем selenium-launchers:
# скачать zip-архив и распаковать куда-нибудь на свою машину
cd selenium-launchers/
./start_linux.sh (./start_mac.sh | ./start_win.sh) # запустит selenuim-сервер на порту 4455
  1. Тесты используют шаблоны страниц. Для их генерации нужно выполнить:
$ ./template_render.sh
  1. Если не поднят, поднять сервер MapsAPI

  2. Запустить тесты

$ ./run.sh

Чтобы запускать только конкретные тесты, необходимо скопировать файл run.sh в run_my.sh и добавить файл, класс и метод теста, например:

#!/usr/bin/env bash
source .env/bin/activate
PYTHONPATH=$(pwd) .env/bin/lode_runner -v tests/firm_callout_test.py:FirmCallout.firm_photo_test --with-xunit
exit 0;

Содержимое проекта

  • В пакете classes хранятся компоненты (сomponents), исключения (exceptions), утилиты (util)
  • В пакете config хранится конфиг для contesto
  • В пакете tests хранятся тесты и пакеты тестов

Исключения

Бывает необходимо поднять и обработать исключение. Все типы исключений для карты, взаимодействия с WebApi и т.д. описываются в classes.exceptioins.exceptions. Наследуются от базового типа исключений contesto, а затем от базового типа исключения API карт.

Утилиты

В данном пакете описываются утилиты и базовые классы тестов для API карт. На данный момент там содержится базовый класс для тестов MapsAPIBaseTest унаследованный от UnittestContestoTestCase, с переопределенным методом setUp.

Компоненты

В данном пакете описываются компоненты страницы, страница и базовой компонент. Базовый компонент наследуется от класса BaseComponent contesto. В нем определяются черты (свойства и методы) свойственные всем компонентам проекта.

Code style

  • Так как используется паттерн pageObject, в тестах не должно быть обращения к драйверу, за исключением пользовательских элементов (кнопки, ползунки и все что не входит в API карт)
  • Для проверки кода перед коммитом рекомендуется создать или добавить в pre-commit git hook содержимое pep8-hook.sh. Для работы хука должен иметься pep8.
  • Имена файлов с тестами <название>_test.py
  • Имена классов оформляются в CapitalizedWords
  • Имена тестовых методов <объект тестирования>_<что тестируется>_test(self, *args, **kwargs)
  • Допускается использование нескольких assert`ов в тесте если они связаны с тестируемым функционалом
  • Использовать только assert`ы contesto