🐛 Типичные ошибки: Allure Framework
⚡ Топ-3 ошибки с Allure
- Не установлен Allure CLI — только pip не даёт команду
allure serve. Нужно установить CLI отдельно. - Двойные шаги — если метод уже имеет
@allure.step, не нужно оборачивать его вызов вwith allure.step— получатся дублирующиеся шаги. - allure-results не очищены — старые данные из предыдущих прогонов попадут в новый отчёт. Используй
--cleanприallure generate.
Ошибка 1 — Allure CLI не установлен
Симптом
# Команда не найдена
allure serve allure-results
# PowerShell: allure : The term 'allure' is not recognized as the name of a cmdlet...
# bash: allure: command not found
Причина
pip install allure-pytest устанавливает только Python-плагин для сбора данных. Команды CLI (allure serve, allure generate) — это отдельная Java-утилита.
Исправление
# Windows (Scoop)
scoop install allure
# macOS (Homebrew)
brew install allure
# После установки проверить:
allure --version
Ошибка 2 — Дублирующиеся шаги в отчёте
Симптом
В отчёте один и тот же шаг показывается дважды — с одинаковым названием.
Причина
# api/company_api.py
@allure.step("api. Получить список компаний") # ← шаг на методе
def get_company_list(self):
...
# tests/test_companies.py
def test_get_companies(self):
with allure.step("api. Получить список компаний"): # ← ещё раз вручную!
result = self.api.get_company_list()
# В отчёте: шаг появится дважды
Исправление
# tests/test_companies.py
def test_get_companies(self):
result = self.api.get_company_list() # шаг уже есть на методе
...
Ошибка 3 — Старые результаты в новом отчёте
Симптом
В отчёте отображаются тесты из прошлых прогонов, которые уже удалены или переименованы.
Причина
# Генерация без --clean — папка allure-report накапливает старые данные
allure generate allure-results -o allure-report
# Старые результаты остаются и смешиваются с новыми
Исправление
# Всегда используй --clean для чистой генерации
allure generate allure-results -o allure-report --clean
Ошибка 4 — Неверный тип вложения
Симптом
Вложение показывается как нечитаемый текст или ссылка не работает.
Причина
# Передан PNG-файл, но указан тип TEXT
with open("screenshot.png", "rb") as f:
allure.attach(f.read(), name="Screenshot",
attachment_type=allure.attachment_type.TEXT) # ← неверно!
Исправление
with open("screenshot.png", "rb") as f:
allure.attach(f.read(), name="Screenshot",
attachment_type=allure.attachment_type.PNG) # ← правильно
Ошибка 5 — Параметр в шаге не подставляется
Симптом
В отчёте отображается литеральный текст {id} вместо реального значения.
Причина
# api/company_api.py
# Имя в скобках не совпадает с именем параметра метода
@allure.step("api. Получить компанию по id '{company_id}'")
def get_company(self, id): # ← параметр называется 'id', а в шаге 'company_id'
...
Исправление
@allure.step("api. Получить компанию по id '{id}'")
def get_company(self, id): # имена совпадают
...
Ошибка 6 — Пустая папка allure-results
Симптом
allure generate создаёт пустой или неполный отчёт.
Причина
# Тесты запущены без флага --alluredir
pytest tests/
# Папка allure-results не создана → данных нет
Исправление
# Обязательно указывай --alluredir при запуске тестов
pytest tests/ --alluredir=allure-results
Ошибка 7 — allure serve не открывает браузер
Симптом
Команда allure serve висит без результата или выводит ошибку о Java.
Причина
Allure CLI требует Java Runtime Environment (JRE 8+). На машине Java не установлена или не добавлена в PATH.
Исправление
# Проверить наличие Java
java -version
# Если не установлена — установить JRE: https://adoptium.net/
# После установки Java перезапустить терминал