Metadata-Version: 2.1
Name: MakeyIS
Version: 0.5
Summary: Библиотека обеспечивает усовершенствованное управление параметрами PyTest и логирование, упрощая создание и отладку автоматизированных тестов за счет интуитивно понятных декораторов и продвинутых функций логирования. Она идеально подходит для повышения эффективности и наглядности процесса тестирования.
Author: Makeenkov Igor
Author-email: pro100igo228@gmail.com
Description-Content-Type: text/markdown

# Библиотека MakeyIS

## Введение
Аннотация **@Test** предназначена для расширенного управления тестами в pytest. Она позволяет настроить различные аспекты тестирования, включая условия выполнения тестов, количество повторений, группировку, а также интеграцию с логированием. Эта аннотация обеспечивает гибкость и удобство в организации тестов, делая процесс тестирования более структурированным и информативным.

## Импортирование аннотации
Для использования аннотации **@Test**, необходимо сначала импортировать её в ваш тестовый файл. Это можно сделать следующим образом:
```
from Library.MakeyIS import Test
```
### Использование аннотации
Базовое применение
**Аннотацию @Test можно применять к функциям тестов в вашем тестовом наборе.** **Например:**
```
@Test(run_test=True, repetitions=5, group_name="Настройка опроса", log=True) 
def test_example(): 
assert True
```

**Параметры**

```run_test``` **(bool):** Определяет, будет ли тест выполняться. Если значение **False**, тест будет пропущен. По умолчанию **True**.

```repetitions``` **(int):** Указывает количество повторений теста. По умолчанию **1**.

```group_name``` **(str):** Имя группы, к которой будет относиться тест. Это помогает в организации и фильтрации тестов. По умолчанию **"default"**.

```log``` **(bool):** Включает или отключает логирование для теста. По умолчанию **False**.

## Примеры использования
**Чтобы выполнить тест один раз без логирования:**

```
@Test(run_test=True, repetitions=1, log=False) 
def test_simple(): 
# ваш код теста
```

**Чтобы пропустить тест:**
```
@Test(run_test=False) 
def test_skipped(): 
# ваш код теста
```

**Чтобы повторить тест несколько раз с логированием:**
```
@Test(repetitions=3, log=True) 
def test_repeated(): 
# ваш код теста
```
## Обновления в версии 0.3

### Новые функции

- **Аннотация @Queue:** Добавлена новая аннотация **@Queue**, которая позволяет устанавливать строгий порядок выполнения тестов. С помощью этой аннотации тесты могут быть запланированы для выполнения в определенном порядке, обеспечивая тем самым дополнительный уровень контроля над тестовым процессом.

**Пример использования @Queue:**
```
@Queue(q=1)
def test_priority():
# Ваш код теста

@Queue(q=2)
def test_followup():
# Ваш код теста
```
**Обратите внимание, что использование строгого порядка выполнения тестов может противоречить некоторым принципам тестирования, таким как независимость тестов. Поэтому используйте эту функциональность осторожно и только там, где это действительно необходимо.**

## Обновления в версии 0.4
Были мелкие исправления по использованию повторений.

## Обновления в версии 0.5
Улучшена и оптимизирована работа аннотации

### Важно!
**Добавьте в pytest.ini**
```
[pytest]
# Другие ваши параметры
markers = group: описание маркера group
```
А так же прошу учесть, чтобы отработали повторения требуется добавить iteration.
Вот как это выглядит на примере моего теста:
```
@Test(run_test=True, repetitions=1, group_name="Настройка опроса", log=True)
    def test_question_text(self, polls_page_control: PollsControlPage, iteration):
        TestPollsControlPage.creating_a_question_text(polls_page_control)
```
## Интеграция с Allure и логированием

Ваша аннотация **@Test** также интегрирована с Allure для отображения шагов и логирования. Каждый тест, помеченный этой аннотацией, будет автоматически логироваться, а также будут отображаться шаги в **Allure** отчетах. Не путать с **Allure.step**.

## Заключение
Использование аннотации **@Test** обеспечивает эффективное и гибкое управление тестами в **pytest**. Она позволяет управлять выполнением, повторениями, группировкой тестов и логированием, что делает процесс тестирования более структурированным и информативным.
