# Аналитика тестов Elixir {#elixir-test-insights}

Hex-пакет Tuist загружает результаты тестов вашего проекта на Elixir после каждого запуска, обеспечивая видимость производительности тестов и нестабильных тестов прямо в панели управления Tuist.

> [!IMPORTANT]
> **Требования**
>
> - Пройдите <.localized_link href="/guides/get-started/elixir-project">Начало работы с Elixir</.localized_link>

## Отправка отчетов о запусках тестов {#report-your-test-runs}

Общая настройка устанавливает интеграцию тестирования. Продолжайте использовать `mix test`, с теми же аргументами, выводом и кодом выхода:

```bash
mix test test/my_app_test.exs:12 --trace
```

Tuist отправляет отчет о запуске по его завершении; дополнительный алиас для тестов не требуется.

Вы можете получить доступ к аналитике тестов в панели управления Tuist и увидеть, как она меняется со временем:

![Панель тестов приложения Phoenix](/images/guides/features/elixir/tests-dashboard.png)

## Что отслеживается {#what-is-tracked}

Пакет собирает результаты ExUnit, включая:
- Статус прохождения/сбоя отдельного теста и его длительность
- Модуль и блок `describe`, к которому относится каждый тест
- Сообщение и местоположение каждой ошибки
- Обнаружение нестабильных тестов между запусками
- Ветка и коммит, а в непрерывной интеграции — провайдер и запуск
- В непрерывной интеграции — [история Git](#git-history) клонированного репозитория

Doctests отправляются так же, как и любые другие тесты. С опцией `--cover` также загружается покрытие строк кода запуска: см. <.localized_link href="/guides/features/test-code-coverage/elixir">Покрытие кода Elixir</.localized_link>.

> [!NOTE]
> Пакет отправляет отчеты через форматтер ExUnit, который добавляется к уже используемым вами. Если вы передаете `--formatter` в командной строке, Mix заменяет весь список, поэтому запуск не отправляется, и задача предупреждает вас об этом.

### История Git {#git-history}

В непрерывной интеграции пакет также загружает историю коммитов клонированного репозитория: SHA коммитов, их родителей, даты коммитов и ветку, в которой выполнялся запуск и базовая ветка pull request. Содержимое файлов, сообщения коммитов или авторы не загружаются. Это позволяет Tuist определить, какие коммиты попали в вашу основную ветку, например, те, которые проверяла очередь слияния. Пакет читает историю, которая уже есть в клонированном репозитории, а если в нем нет базовой ветки, запрашивает у удаленного репозитория последний коммит (`git ls-remote`). Вне режима покрытия кода (`--cover`) история не загружается.

| Переменная | Эффект |
| --- | --- |
| `TUIST_GIT_UPLOAD_ENABLED=false` | Не читает и не загружает историю Git. |
| `TUIST_GIT_UNSHALLOW_ENABLED=false` | Читает только клонированный репозиторий, без обращения к удаленному. |

## Устранение неполадок {#troubleshooting}

Отправка отчетов никогда не меняет результат ваших тестов: если отчет не может быть отправлен, запуск завершается так, как должен был, и ничего не выводится. Чтобы узнать, почему отчет не был отправлен, установите `TUIST_DEBUG=1`:

```bash
TUIST_DEBUG=1 mix test
```
