О проекте
Пример тестирования Flask-приложения с помощью pytest, allure, sqlite. На само приложение (если есть желание) можно посмотреть, запустив:
# Перед запуском выполнить пункт "Сборка проекта / зависимости"
python3 mainapp.py
# Будет доступно по: http://localhost:8080)
Как это работает
При запуске теста создаётся база данных (sqlite3) test_g-oak.db.ru, которая при каждом прогоне заново наполняется необходимыми для теста данными и очищается по завершении всех тестов. За данный функционал отвечат файл tests/conftest.py. Тем самым при тесте используется сторонняя база данных и не идёт никаких обращений в базу g-oak.db.ru (которая используется непосредственно самим приложением). Для теста также не требуется запускать приложение, так как все url-ы и прочая логика поднимаются / проверяются самостоятельно на уровне pytest.
Тест запускается с помощью команды:
python3 -m pytest --alluredir=allure_data
Поэтому исходные даные для allure отчёта сохраняются в директорию allure_data, находящуюся в корне проекта.
Сборка проекта / зависимости
pip3 install -r requirenments.txt
Запуск тест-кейсов
Обязательно установить зависимости
pip3 install -r requirenments.txt
Установить allure-клиента для необходимой ОС
https://github.com/allure-framework/allure2/releases
Запуск тестирования
python3 -m pytest --alluredir=allure_data
Просмотр отчёта
Отчёты можно просмотреть
- как в локальном index.html файле (для этого надо будет сначала его сгенерировать)
allure generate -o allure_reports allure_data --clear
# Открыть файл index.html в директории allure_reports
- так и подняв локальный сервер
allure serve allure_data
# Отчёт откроется автоматически в браузере
# Требуется Java 11, при наличии ошибки "Please set the JAVA_HOME variable in your environment to match the location of your Java installation.", могут помочь команды:
echo $JAVA_HOME
readlink -f $(which java)
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64/