Полное руководство по интеграции Allure в Go-тесты: от установки до CI/CD [2024]

Полное руководство по интеграции Allure в Go-тесты: от установки до CI/CD [2024]
/assets/blog/authors/asanov_small.jpg
Ildar Asanov
#golang#allure#qa#cicd

Полное руководство по интеграции Allure в Go-тесты: от установки до CI/CD [2024]

TL;DR: Это руководство содержит полную информацию по интеграции Allure в Go-проекты, включая настройку окружения, примеры тестов и CI/CD интеграцию.

Содержание

  1. Предварительные требования
  2. Установка и базовая настройка
  3. Настройка Allure TestOps
  4. Базовый пример интеграции
  5. Продвинутое использование
  6. CI/CD интеграция
  7. Решение проблем
  8. FAQ

1. Предварительные требования

Необходимые инструменты

  • Go 1.16 или выше
  • Git
  • Доступ к Allure TestOps

Установка зависимостей

# Основная библиотека для работы с Allure
go get github.com/ozontech/allure-go

# Дополнительные зависимости
go get github.com/stretchr/testify
go get github.com/pkg/errors

Note: Обязательно проверьте версии в go.mod:

module your-project

go 1.21

require (
    github.com/ozontech/allure-go v0.6.32
    github.com/stretchr/testify v1.9.0
)

2. Установка и базовая настройка

Установка allurectl

# Для MacOS Intel
curl -Lo ./allurectl https://github.com/allure-framework/allurectl/releases/latest/download/allurectl_darwin_amd64

# Для MacOS M1/M2
curl -Lo ./allurectl https://github.com/allure-framework/allurectl/releases/latest/download/allurectl_darwin_arm64

# Для Linux
curl -Lo ./allurectl https://github.com/allure-framework/allurectl/releases/latest/download/allurectl_linux_amd64

chmod +x ./allurectl
sudo mv ./allurectl /usr/local/bin/allurectl

Настройка переменных окружения

# Обязательные переменные
export ALLURE_ENDPOINT="https://your-allure-server/api"
export ALLURE_TOKEN="your-token"
export ALLURE_PROJECT_ID="your-project-id"

# Опциональные переменные
export ALLURE_RESULTS_PATH="./allure-results"
export ALLURE_OUTPUT_FOLDER="./allure-report"

Warning: Никогда не храните токен напрямую в репозитории. Используйте переменные окружения или секреты CI/CD.

3. Настройка Allure TestOps

Создание проекта в Allure TestOps

Allure TestOps Setup

Шаги настройки:

  1. Создайте новый проект
  2. Получите Project ID (понадобится для конфигурации)
  3. Создайте API token в настройках пользователя

Структура тест-кейсов

Рекомендуемая организация тестов:

  • Создавайте эпики для крупных функциональных блоков
  • Группируйте тест-кейсы по фичам
  • Используйте теги для удобной фильтрации

4. Базовый пример интеграции

Минимальная структура теста

package tests

import (
    "testing"
    "github.com/ozontech/allure-go/pkg/framework/provider"
    "github.com/ozontech/allure-go/pkg/framework/runner"
    "github.com/stretchr/testify/require"
)

// Базовая структура теста с Allure
func Test_BasicExample(t *testing.T) {
    // Создаем новый runner
    r := runner.NewRunner(t, "Basic Test Suite")

    // Определяем тест-кейс
    r.NewTest("simple test", func(t provider.T) {
        // Привязка к тест-кейсу в Allure TestOps
        t.ID("12345")
        
        // Добавляем метаданные для группировки в отчетах
        t.Epic("API Tests")
        t.Feature("Basic Operations")
        t.Story("Simple Functionality")
        
        // Описываем шаги теста
        t.Step("Initialize test data", func() {
            // Код инициализации
        })
        
        t.Step("Perform operation", func() {
            // Основной код теста
        })
        
        t.Step("Verify results", func() {
            require.True(t, true)
        })
    })

    // Запускаем все тесты
    r.RunTests()
}

More Stories