# Пакетное выполнение тестов

Доступно в v2

Флаг `--batch-tests` объединяет совместимые тесты данных, относящиеся к одной модели, в один запрос для каждого типа тестов вместо выполнения отдельного запроса для каждого теста. Это сокращает количество запросов, которые dbt выполняет при тестировании, что может повысить производительность в проектах с большим количеством тестов данных.

## Объединение тестов в пакеты

Пакетное выполнение применяется к `dbt build` и `dbt test`. dbt объединяет группу тестов в пакет, если выполняются все следующие условия:

* Тесты имеют тип `unique` или `not_null`
* Они относятся к одной модели
* Они используют конфигурацию по умолчанию
* Как минимум два из них имеют одинаковый тип

dbt исключает тесты из пакетного выполнения, если задан любой из следующих параметров:

* `severity`
* `error_if`
* `warn_if`
* `fail_calc`
* `limit`
* `where`
* `store_failures`
* `store_failures_as`

Исключённые тесты выполняются отдельно, как и без пакетного выполнения.

## Настройка флага

dbt определяет значение `batch_tests` по трём источникам в порядке приоритета:

1. Флаг командной строки `--batch-tests`
2. Переменная окружения `DBT_ENGINE_BATCH_TESTS`
3. Блок `flags` в файле `dbt_project.yml` корневого проекта

Например, в командной строке:

CLI

```bash
dbt build --batch-tests
```

С помощью переменной окружения:

Env var

```bash
export DBT_ENGINE_BATCH_TESTS=true
dbt build
```

В файле `dbt_project.yml`:

dbt\_project.yml

```yaml
flags:
  batch_tests: true
```
