🐛 Типичные ошибки: Allure Framework

← К оглавлению урока

⚡ Топ-3 ошибки с Allure

  1. Не установлен Allure CLI — только pip не даёт команду allure serve. Нужно установить CLI отдельно.
  2. Двойные шаги — если метод уже имеет @allure.step, не нужно оборачивать его вызов в with allure.step — получатся дублирующиеся шаги.
  3. 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 перезапустить терминал